전체 글
Post Mapping은 왜 @RequestParam 보다 @RequestBody를 이용해야할까?
https://tools.ietf.org/html/rfc2616#section-9.5 https://tools.ietf.org/html/rfc7231#section-4.3.3 https://stackoverflow.com/questions/5876809/do-http-post-methods-send-data-as-a-querystring Do HTTP POST methods send data as a QueryString? I'd like to know if the POST method on HTTP sends data as a QueryString, or if it use a special structure to pass the data to the server. In fact, when I analy..
ResponseEntity란?
ResponseEntity란 HttpEntity를 상속받아 구현한 클래스이다. 여기서 HttpEntity란 HTTP 요청 또는 응답에 해당하는 HttpHeader와 HttpBody를 포함하는 클래스이다. 따라서 ResponseEntity는 사용자의 HttpRequest에 대한 응답 데이터를 포함하는 클래스라고 볼 수 있다. ResponseEntity를 이용하여 ok(), status(), badRequest()등 적절한 응답을 보낼 수 있다. :) 참고 - devlog-wjdrbs96.tistory.com/182
@ControllerAdvice, @ExceptionHandler를 이용한 예외처리
@ExceptionHandler @ExceptionHandler는 @Controller, @RestController가 적용된 빈 내에서 발생하는 예외를 잡아서 하나의 메서드에서 처리해준다. 예를 들자면 다음과 같다. @Controller public class MyController { @ExceptionHandler(IllegalArgumentException.class) public Object catch(Exception e){ System.err.println(e.getMessage()); return "myService"; } }@ExceptionHandler라는 어노테이션을 쓰고 인자로 캐치하고 싶은 예외 클래스를 등록하면 된다. {}를 이용해서 두 개 이상의 예외 클래스도 한 번에 처리가 ..
[JDBC] Insert 쿼리 실행 시 KeyHolder를 이용해서 자동 생성 키 값 구하기
ID 값이 AUTO_INCREMENT 인 경우, Insert 쿼리 실행 시 ID 값을 value로 직접 지정해주지 않는다. (왜냐하면? 자동 생성되기 때문!) 그런데, 어떠한 엔티티를 테이블에 삽입하고 나서 그 엔티티에게 할당된 아이디 값을 전달받고 싶은 경우에는 어떻게 해야할까? JDBCTemplate은 자동으로 생성된 키 값을 구할 수 있는 방법을 제공하는데, 그것은 바로 KeyHolder이다. public void insert(final Member member) { KeyHolder keyHolder = new GeneratedKeyHolder(); jdbcTemplate.update((Connection con) -> { PreparedStatement pstmt = con.prepareStat..
[Spring] @RequestParam과 @ModelAttribute의 차이점
@RequestParam @GetMapping("/users") public ResponseEntity requestParam(@RequestParam("name") String userName) { return ResponseEntity.ok().body(new User(userName, "email")); } 우선, @RequestParam은 쿼리스트링으로 들어온 파라미터들을 1:1로 받는다. 만약, 파라미터 타입이 잘못 들어오게 되면 400 Bad Request를 보낸다. @ModelAttribute @GetMapping("/insert") public Object requestParam(@ModelAttribute("user") User user, BindingResult bindingResult..
엘레강트 오브젝트 토론하기
방학을 맞아 엘레강트 오브젝트를 읽고 있다. (건성으로 읽긴 하지만.. 요즘 하도 글을 잘 안읽다보니 진정 난독이 온 것 같다.) 읽으면서 챕터 정리도 할 겸, 깃허브의 이슈를 이용해 정리하고 있는데, 혹시라도 엘레강트 오브젝트를 읽다 이야기하고 싶거나 의견을 던지고 싶은 부분이 있다면 여기 (클릭 시 이동됨!)로 놀러와 의견을 함께 나눠봅시다!!!!