Controller에서 primitive type과 wrapper type의 변형과 유효성검사
최근에 새로 자바/스프링을 공부하는 친구들에게 질문을 받았는데, 문득 어? 잘 모르겠는데 싶어서 테스트해보았다. 과연 @RequestBody에 null 값을 받게 되었을 때, wrapper type에서는 null로 매핑되겠지만, primitive type에서는 NPE가 발생할까? default value인 0이 매핑될까?
1 2 3 4 5 6 7 8 9 10 11 12 13 |
@RestController public class HelloWorldController { @PostMapping("/test") public void test(@Valid @RequestBody TestDto testDto) { System.out.println(">>>" + testDto); } @Data private static class TestDto { private long number; private Long number2; } } |
결과를 확인해보니,
1 2 3 4 5 6 7 8 9 |
POST http://localhost:8070/test Content-Type: application/json { "number": null, "number2": null } >>> HelloWorldController.TestDto(number=0, number2=null) |
primitive type에서는 default value인… 더 보기 »Controller에서 primitive type과 wrapper type의 변형과 유효성검사