Java Spring17 [spring] springBoot ajax json๊ณผ file ์ ์ก controller /** * ๊ฒ์๊ธ ๋ฑ๋ก ์ฒ๋ฆฌ(๋น๋๊ธฐ) * @param boardVo * @param files * @return */ @PostMapping(value = "/regAjax") @ResponseBody public Integer regAjax(@RequestPart(value = "boardVo") BoardVo boardVo, @RequestPart(value = "files", required = false) List files, HttpSession session) throws IOException, Exception { //ํ ์คํธ๋๊น try catch๋ก ์์ธ์ฒ๋ฆฌ ํ์ง ์๊ณ ๊ทธ๋ฅ throws๋ก ๋์ก๋ค. UserVo userInfo = getUserSessionInfo(sessio.. IT/development 2023. 6. 3. [spring] vo์ multipartFile ๋์์ ์๋ฒ๋ก ์ ์ก(feat.@RequestPart) ํด๋ผ์ด์ธํธ์์ JSON ํ์ ์ ๋ฐ์ดํฐ์ ๋ฉํฐํํธ ํ์ ํ์ผ์ ๋์์ ์ ๋ฌ ๋ฐ๋ ๋ฐฉ๋ฒ์ ๊ธฐ๋กํ๋ค.Controller์์ JSONํ์ ์ ๋ฐ์ดํฐ๋ฅผ vo๋ก ๋ฐ๊ณ ๋ฉํฐํํธ ํ์ ํ์ผ์ ๋ฐ์์ ๋ก๊ทธ๋ง ์ฐ์ด๋ณด๊ฒ ๋ค.controllerpackage study.lsyrestapitest1.controller.api;import lombok.RequiredArgsConstructor;import lombok.extern.slf4j.Slf4j;import org.springframework.ui.Model;import org.springframework.web.bind.annotation.PostMapping;import org.springframework.web.bind.annotation.RequestMapping;imp.. IT/development 2023. 2. 8. [spring] @RequestBody String type ๋ฐ๊ธฐ ๋ชฉ์ฐจ spring์์ @RequestBody๋ก String type์ ๋ณ์ ๋ฐ๊ธฐ ์คํ๋ง RestFul๋ฐฉ์์ผ๋ก ํด๋ผ์ด์ธํธ์์ ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌ ๋ฐ์ ๋ ๋นํฉํ๋ ๊ฒฝํ์ด ์์ด ์ด๋ฅผ ๊ธฐ๋กํ๋ค. ๋ณดํต ์คํ๋ง์์ ํด๋ผ์ด์ธํธ์์ ์ ๋ฌํ ๋ฐ์ดํฐ๋ฅผ Dto๋ Vo๋ฑ์ ๊ฐ์ฒด ํ์ ์ผ๋ก ๋ฐ์ธ๋ฉ ์ ์๋์ฒ๋ผ ๊ฐ์ฒด๋ก ์ ๋ฌ ๋ฐ๋๋ก ํ๋ฉด ๋๋ค. package study.lsyrestapitest1.controller.api; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotati.. IT/development 2023. 1. 24. [spring] @ControllerAdvice, @ExceptionHandler๋ฅผ ์ด์ฉํ ์์ธ์ฒ๋ฆฌ ๋ชฉ์ฐจ ์ญ์๋ ๋ฏธ๋์ ๋ด๊ฐ ๋ณด๊ธฐ ์ํด ๊ธฐ๋กํ๋ค. ๊ธฐ์กด์๋ try catch๋ฌธ์ผ๋ก ์์ธ๋ฅผ ์ฒ๋ฆฌํ์๋๋ฐ ์์ธ์ฒ๋ฆฌ๊ฐ ํ์ํ ์ฌ๋ฌ๊ตฐ๋ฐ ์ฝ๋์ ์ ์ฉ์ ํด์ผ ๋๋.. ํด๋ฆฐํ์ง๊ฐ ์์ ๊ตฌ๊ธ๋ง ํด๋ณด๋ ์คํ๋ง์์ ์ ๊ณตํ๋ @ControllerAdvice, @ExceptionHandler์ด ์์๋ค. ์ ์ด๊ฑธ ์ด์ ์ผ ์๊ฒ ๋์๋์ง.. ๐ฅ ํ ์คํธ ๊ฐ๋ฐํ๊ฒฝ์ ์๋์ ๊ฐ๋ค. @ExceptionHandler ๐ @Controller๋ @RestController๊ฐ ์ ์ธ๋ Bean์์ ๋ฐ์ํ ์์ธ๋ง ์ฒ๋ฆฌํ ์ ์๋ค. @Service๋ @Repository์ ๊ฐ์ ๊ณณ์์์ ์์ธ๋ ์ฒ๋ฆฌํ ์ ์์์ ์ ์ํ ๊ฒ ์ฌ์ฉ๋ฐฉ๋ฒ์ ๊ฐ๋จํ๋ค. ์ปจํธ๋กค๋ฌ ๋ด์ ๋ฉ์๋๋ฅผ ๋ง๋ค๊ณ @ExceptionHandler๋ฅผ ์ ์ธํ๊ณ value๊ฐ์ผ๋ก ์์ธ์ฒ๋ฆฌ ํด๋์ค๋ฅผ .. IT/development 2022. 12. 4. [Spring]RequestMapping์ ๋ณํ ๋ชฉ์ฐจ RequestMapping์ ๋ณํ @Controller ์ด๋ ธํ ์ด์ ์ ์ถ๊ฐ์ ์ธ ์์ฑ์ ์ง์ ํ ์ ์์ง๋ง @RequestMapping์ ๋ช ๊ฐ์ง์ ์์ฑ์ ์ถ๊ฐํ ์ ์๋๋ฐ ๊ทธ์ค ๋ง์ด ์ฌ์ฉํ๋ ์์ฑ์ด method ์์ฑ์ด๊ณ ํํ GET๋ฐฉ์, POST ๋ฐฉ์์ ๊ตฌ๋ถํด์ ์ฌ์ฉํ ๋ ์ด์ฉ๋๋ฉฐ ์คํ๋ง 4.3๋ฒ์ ์์๋ @RequestMapping์ ์ค์ฌ์ ์ฌ์ฉํ ์ ์๋ @GetMapping, @PostMapping์ด ๋ฑ์ฅํ๋๋ฐ ์ถ์ฝํ์ ํํ์ด๋ฏ๋ก ๊ธฐ์กด์ @RequestMapping๊ณผ ๋น๊ตํด์ ํ์ตํ๋ ๊ฑธ ๊ถ์ฅ @RequestMapping์ POST, GET ๋ฐฉ์ ๋๋ค ์ง์ํด์ผ ํ๋ ๊ฒฝ์ฐ๋ค๋ ๋ฐฐ์ด๋ก ์ฒ๋ฆฌํด์ ์ง์ ํ ์ ์๊ณ ์ผ๋ฐ์ ์ผ๋ก๋ GET, POST๋ฐฉ์๋ง์ ์ฌ์ฉํ์ง๋ง ์ต๊ทผ์๋ PUT, DELETE ๋ฐฉ์ ๋ฑ๋ ์ ์ .. IT/development 2022. 11. 30. [Spring]@ModelAttribute ์ด๋ ธํ ์ด์ ๋ชฉ์ฐจ ์คํ๋ง @ModelAttribute ์คํ๋งMVC์ Controller๋ ๊ธฐ๋ณธ์ ์ผ๋ก Java Beans ๊ท์น์ ๋ง๋ ๊ฐ์ฒด๋ ๋ค์ ํ๋ฉด์ผ๋ก ๊ฐ์ฒด๋ฅผ ์ ๋ฌํจ ์ข์ ์๋ฏธ์์ Java Beans ๊ท์น์ ๋จ์ํ ์์ฑ์๊ฐ ์๊ฑฐ๋ ๋น ์์ฑ์๋ฅผ ๊ฐ์ ธ์ผ ํ๋ฉฐ, getter/setter๋ฅผ ๊ฐ์ง ํด๋์ค์ ๊ฐ์ฒด๋ค์ ์๋ฏธํจ ์์ ์์ ์์ parameter๋ก ์ฌ์ฉ๋์๋ SampleDTO์ ๊ฒฝ์ฐ๋ Java Beans ๊ท์น์ ๋ง๊ธฐ ๋๋ฌธ์ ์๋์ผ๋ก ๋ค์ ํ๋ฉด๊น์ง ๊ฐ์ฒด๊ฐ ์ ๋ฌ๋์์(์ ๋ฌ ๋ ๋๋ ํด๋์ค๋ช ์ ์๊ธ์๋ ์๋ฌธ์๋ก ์ฒ๋ฆฌ๋จ) ๋ฐ๋ฉด ๊ธฐ๋ณธ ์๋ฃํ์ ๊ฒฝ์ฐ๋ parameter๋ก ์ ์ธํ๋๋ผ๋ ๊ธฐ๋ณธ์ ์ผ๋ก ํ๋ฉด๊น์ง ์ ๋ฌ๋์ง๋ ์์ ์๋ ์ด๋ฏธ์ง์ฒ๋ผ SampleController์์ method๋ฅผ ์์ฑํ ๋ค ๋ธ๋ผ์ฐ์ ์์ parameter์ ๊ฐ.. IT/development 2022. 11. 30. [IDE]IntelliJ springBoot ๋ฆฌ์์ค ์๋ ๋ฆฌ๋ก๋ ๋ชฉ์ฐจ IntelliJ springBoot ๋ฆฌ์์ค ์๋ ๋ฆฌ๋ก๋ spring-boot-devtools๋ฅผ ์ด์ฉ(์๋ฒ ์ฌ์์์์ด ์๋ ๋ฆฌ๋ก๋) ์ถ์ฒ : https://powernote.tistory.com/19 IntelliJ spring boot DevTools ์๋ ๋น๋ ์ ์ฉํ๊ธฐ. ** intelliJ version : IntelliJ IDEA 2018.1 ์ดํ ๋ฒ์ # IntelliJ ์์ devtools ๊ฐ๋ฐ๋๊ตฌ๋ฅผ ์ค์น ํ๋ฉด ์ด์ํ๊ฒ EClipse์์ ์๋๋ ์๋ ์ปดํ์ผ ์ด ์๋๋ค. # devtools ๋ฅผ ๋ฐ์ํ๊ณ ์ ์ฉํ๋๊ฒ์ ํด๋ณด์. ์ฐธ๊ณ URL : ht powernote.tistory.com ์ถ์ฒ : https://lejewk.github.io/springboot-devtool/ spring boot.. IT/development 2022. 11. 29. [Spring]spring REST(Representational State Transfer) ๋ชฉ์ฐจ spring REST(Representational State Transfer) Rest๋ "Representational State Transfer"์ ์ฝ์ด๋ก ํ๋์ URI๋ ํ๋์ ๊ณ ์ ํ ๋ฆฌ์์ค(Resource)๋ฅผ ๋ํํ๋๋ก ์ค๊ณ๋๋ค๋ ๊ฐ๋ ์ ์ ์ก๋ฐฉ์์ ๊ฒฐํฉํด์ ์ํ๋ ์์ ์ ์ง์ ํจ ์คํ๋ง์์๋ @RequestMapping, @ResponseBody์ ๊ฐ์ REST๋ฐฉ์์ ๋ฐ์ดํฐ ์ฒ๋ฆฌ๋ฅผ ์ํ ์ฌ๋ฌ ์ข ๋ฅ์ ์ด๋ ธํ ์ด์ ๊ณผ ๊ธฐ๋ฅ์ ์ ๊ณตํจ REST์ ๊ด๋ จํด์ ์์๋ ํ์๊ฐ ์๋ ์ด๋ ธํ ์ด์ ์ ์๋์ ๊ฐ์ @RestController: Controller๊ฐ REST๋ฐฉ์์ ์ฒ๋ฆฌํ๊ธฐ ์ํจ์ ๋ช ์ํจ @ResponseBody: ์ผ๋ฐ์ ์ธ JSP์ ๊ฐ์ ๋ทฐ๋ก ์ ๋ฌ๋๋ ๊ฒ์ด ์๋๋ผ ๋ฐ์ดํฐ ์์ฒด๋ฅผ ์ ๋ฌํ๊ธฐ ์ํ ์ฉ๋์ ์ฌ์ฉ.. IT/development 2022. 11. 27. [Spring]UriComponentsBuilder(์๋ฒ๋จ์์ ๋์ ์ผ๋ก URI ์์ฑ) ๋ชฉ์ฐจ UriComponentsBuilder(์๋ฒ๋จ์์ ๋์ ์ผ๋ก URI ์์ฑ) ๊ฒ์ํ์์ ๊ฒ์ํ ๊ฒฐ๊ณผ๊ฐ์ด ๊ธ ์์ , ์กฐํ๋ฅผ ํด๋ ๊ณ์ ํ์ด์ง์ ๊ฒฐ๊ณผ๊ฐ์ด ์ ์ง๋์ด์ผ ํ๋ ๊ฒฝ์ฐ๊ฐ ํ์ํจ ์ด ๋ ํ๋ฉด์์ form์ input hidden ์์ฑ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ๋ด์์ javascript๋ก ๋์ ์ผ๋ก form action์ ๋ณ๊ฒฝ์์ผ์ GET๋ฐฉ์์ผ๋ก ์ ์กํ๋๋ฐ ์ด ์์ ์ ์ค์ฌ์ค ์ ์๋๊ฒ UriComponentsBuilder ํด๋์ค์, ์ฌ์ฉ๋ฐฉ๋ฒ์ ์๋์ ๊ฐ์ ์๋๋ ๊ฒ์์กฐ๊ฑด์ ์ ์งํ๋ Criteria class์ธ๋ฐ ์ฌ๊ธฐ์ UriComponentsBuilder๋ฅผ ์ด์ฉํด์ parameter๋ฅผ ์ฐ๊ฒฐํด์ ๋งํฌ๋ฅผ ์์ฑํ๋ ๊ธฐ๋ฅ์ ์ถ๊ฐํ ์ ์์ getListLink()๋ ํ์ด์ง๋ฒํธ, ๋ณด์ฌ์ค ํ์ด์ง ์, ๊ฒ์ํ์ , ๊ฒ์ ํค์๋๋ฅผ p.. IT/development 2022. 11. 27. [Spring]spring ํ๋ ์ ํ ์ด์ (์น)๊ณ์ธต์ CRUD ๊ตฌํ ์ MockTest ๋ชฉ์ฐจ MockTest ๊ณผ๊ฑฐ์๋ viewํ์ด์ง๋ฅผ ๋ง๋ ๋ค Tomcat์ ์คํํ๊ณ ์น ํ์ด์ง์์ ๊ฒฐ๊ณผ๋ฅผ ํ์ธํ๋ ๋ฐฉ์์ ์ฝ๋๋ฅผ ์์ฑํด ์๋๋ฐ, ์ด ๋ฐฉ์์ ์๊ฐ๋ ์ค๋ ๊ฑธ๋ฆฌ๊ณ ํ ์คํธ๋ฅผ ์๋ํ ํ๊ธฐ์๋ ์ด๋ ค์์ด ๋ง์์ Mock์ ์ด์ฉํด์ Controller๋ฅผ ํ ์คํธ ํ๋ ๋ฐฉ์์ด ์์ MockMvc๋ ๋ง ๊ทธ๋๋ก '๊ฐ์ง mvc'๋ผ๊ณ ์๊ฐํ๋ฉด ๋๊ณ , ๊ฐ์ง๋ก URL๊ณผ parameter ๋ฑ์ ๋ธ๋ผ์ฐ์ ์์ ์ฌ์ฉํ๋ ๊ฒ์ฒ๋ผ ๋ง๋ค์ด์ Controller๋ฅผ ์คํ ํด ๋ณผ ์ ์์ ์ฐ์ ์๋์ฒ๋ผ BoardController์์ ๊ฒ์๊ธ ์ ์ฒด ๋ชฉ๋ก์ ๊ฐ์ ธ์ค๋ ์์ ์ฝ๋๋ฅผ ์์ฑํจ ๊ทธ ๋ค์ ์๋ ์ด๋ฏธ์ง์ฒ๋ผ ํ ์คํธ ์ฝ๋๋ ์น์ ๊ฐ๋ฐํ ๋ ๋งค๋ฒ URL์ ํ ์คํธ ํ๊ธฐ ์ํด Tomcat์ ์คํํ๋ ๋ถํธํ ๋จ๊ณ๋ฅผ ์๋ตํ๊ธฐ ์ํด์ ๊ธฐ์กด๊ณผ ๋ค๋ฅด๊ฒ ์.. IT/development 2022. 11. 27. ์ด์ 1 2 ๋ค์