학습/Spring45 [spring] 스프링 웹 MVC의 HttpMessageConverter HttpMessageConverter 스프링 제공 인터페이스 HTTP 요청 본문 -> 객체 변환 (@RequestBody) 객체 -> HTTP 응답 본문 변환 (@ResponseBody) @RestController에서는 @ResponseBody 생략가능 깨달은 것 > @RequestBody / @ResponseBody 어노테이션이 없으면 HttpMessageConverter 사용 X 깨달은 것 > 위 어노테이션이 있으면 컨버터 , 없으면 View Resolver 만약, 리턴 객체를 HTTP 응답 본문으로 변환하지 않는다면? 즉, 컨트롤러 클래스가 @Controller일 때 즉, HttpMessageConverter를 사용하지 않고, ViewResolver를 이용할 때 Controller가 View의 이.. 2020. 4. 20. [spring] 스프링부트를 통한 스프링 웹 MVC 구축의 편리함 편리함 스프링부트 -> 스프링 웹 MVC 개발 추가설정 필요 X 스프링부트의 AutoConfiguration 때문 spring-boot-autoconfigure/META-INF/spring.factories/WebMvcAutoConfiguration AutoConfiguration class 내에 다양한 @Bean 메소드가 존재 스프링 부트가 제공하는 웹 MVC 기능 확장하고 싶을 때 -> @Configuration + WebMvcConfigurer 재정의하고 싶을 때 -> @Configuration + @EnableWebMvc + WebMvcConfigurer @EnableWebMvc//해당 어노테이션이 있을 경우, 스프링부트의 웹 MVC 기본설정 사라짐 @Configuration public clas.. 2020. 4. 19. [spring] 스프링부트의 Spring-Boot-Devtools 스프링부트가 제공하는 Optional Tool org.springframework.boot:spring-boot-devtools 의존성 추가 추가 시 기본 프로퍼티 변경 개발 환경의 편리함을 위한 일부 캐시 false h2 on session-persistent on restart on 리스타트 기능? 코드 변경 시 자동 재시작 스프링부트가 사용하는 2개 클래스로더 중, 리스타트 클래스로더 이용 Base Class Loader (의존성을 읽어들이는 클래스로더) Restart Class Loader (어플리케이션을 읽어들이는 클래스로더) 라이브 리로드 기능? 코드 변경 시 브라우저를 새로고침 브라우저 플러그인 필요 리모트 어플리케이션 기능? 원격에 어플리케이션 코드를 생성하고, 로컬에서 실행 Producu.. 2020. 4. 18. [spring] 스프링부트의 테스트 스프링부트 테스트 준비물 spring-boot-starter-test 의존성 junit (unit test framework) jsonpath (json assertion) mockito (mocking framework) selenium (web scrapping) junit test runner를 설정하는 @RunWith(SpringRunner.class) 스프링부트 테스트 어노테이션 @SpringBootTest / @JsonTest / @WebMvcTest @SpringBootTest의 기본 웹 환경은 WebEnvironment = SpringBootTest.WebEnvironment.MOCK 테스트할 때, 원래의 서블릿 컨테이너 대신 mocking container를 띄운다. 원래 서블릿처럼 Di.. 2020. 4. 17. [spring] 스프링부트의 로깅 로깅 퍼사드(Logging Facade) & 로거(Logger) Logging Facade Logger API들을 추상화해놓은 인터페이스 로깅 퍼사드를 통해 로거 사용 장점 : 구현체를 쉽게 바꿀 수 있다 (Spring Data JPA처럼) 종류 : SLF4j / JCL / Commons Logging Logger 종류: log4j2 / JUL(java.util.logging) / LogBack 스프링부트의 로깅 과거 : Commons Logging 현재 : Spring-JCL의 개입으로 Commons Logging(인터페이스) -> SLF4j(인터페이스) -> Logback(구현체) 중요 : 최종적으로 Logback을 사용함을 기억 SLF4j는 의존성에 의거하여 로거를 선택한다. 어떤 구현체로도 바꿀 .. 2020. 4. 16. 이전 1 2 3 4 5 6 7 8 9 다음