본문 바로가기

개발 팁

(12)
@AllArgsConstructor / @RequiredArgsConstructor @RequiredArgsConstructor 초기화 되지 않은 final 필드와 @NotNull 어노테이션이 붙은 필드를 포함한 생성자를 생성해준다. @AllArgsConstructor 모든 필드에 대해서 생성자를 생성해준다.
@JsonIgnore @JsonIgnore 를 필드값에 붙여주면 데이터를 주고 받을 때 해당 데이터는 'ignore'되어서 결과에서 해당 필드값이 응답값에 보이지 않게된다.
@RequestBody / @ResponseBody 스프링 프레임워크에서 비동기통신 API통신을 구현하기 위해 사용 @RequestBody ㄴ클라이언트의 JSON의 HTTP Body 요청을 JavaObject로 변경하여 서버로 전달 http 메시지 부분의 다음 Json 요청을 { "id": 1, "name": "user1" } @RequestBody가 받아 JavaObject 로 변경 entity.id == 1 entity.name == "user1" entity.address == null @ResponseBody ㄴ서버의 JSON응답을 HTTP Body로 변경하여 클라이언트에게 전달 @RestController 어노테이션을 사용하는경우 반환값에 자동으로 @ResponseBody가 적용되어 자바객체를 반환하면 알아서 JSON형식으로 매핑해서 응답한다.
@ModelAttribute와 @RequestBody 차이점 @ModelAttribute 클라이언트에서 전송받은 데이터(multiopart/form-data)의 요청데이터와 쿼리파라미터로 넘어 오는 데이터를 VO의 setter 메소드를 통해 VO와 1:1 바인딩 해주게 된다. @RequestBody 클라이언트가 전송하는 JSON(application/json)이나 XML형태의 HTTP Body내용을 JavaObject로 변환시켜준다.(POST/PUT) 그렇기에 BodyMessage가 존재하지않는 Get에 ResponseBody를 사용하게 되면 에러가 발생한다(쿼리스트링으로는 표현이 불가능하기 때문) JavaObject로 변환하기 때문에 setter 메소드를 필요로 하지 않는다. (RestAPI 개발시 Json으로 요청이 오는경우가 대부분이기 때문에 이때는 @Res..