반응형

Java Spring 17

[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.06.03

[spring] vo와 multipartFile 동시에 서버로 전송(feat.@RequestPart)

클라이언트에서 JSON 타입의 데이터와 멀티파트 형식 파일을 동시에 전달 받는 방법을 기록한다. Controller에서 JSON타입의 데이터를 vo로 받고 멀티파트 형식 파일을 받아서 로그만 찍어보겠다. controller package 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.RequestMap..

IT/development 2023.02.08

[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.01.24

[spring] @ControllerAdvice, @ExceptionHandler를 이용한 예외처리

목차 역시나 미래의 내가 보기 위해 기록한다. 기존에는 try catch문으로 예외를 처리했었는데 예외처리가 필요한 여러군데 코드에 적용을 해야 되니.. 클린하지가 않아 구글링 해보니 스프링에서 제공하는 @ControllerAdvice, @ExceptionHandler이 있었다. 왜 이걸 이제야 알게 되었는지.. 😥 테스트 개발환경은 아래와 같다. @ExceptionHandler 😄 @Controller나 @RestController가 선언된 Bean에서 발생한 예외만 처리할 수 있다. @Service나 @Repository와 같은 곳에서의 예외는 처리할 수 없음에 유의할 것 사용방법은 간단하다. 컨트롤러 내에 메소드를 만들고 @ExceptionHandler를 선언하고 value값으로 예외처리 클래스를 ..

IT/development 2022.12.04

[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
반응형