본문 바로가기

분류 전체보기77

[spring] 스프링에서 WebJars 이용하기 WebJar Web Libraries in Jars jquery / BootStrap / react / ... 클라이언트 라이브러리를 jar 파일 안에 패키징 다른 라이브러리를 사용하는 것처럼 의존성 추가 template를 사용해서 동적으로 컨텐츠 생성 시, WebJar 안의 js, css 참조가능 정적 리소스에서도, WebJar 안의 js, css 참조가능 WebJar의 파일을 참조하는 경로 외부 Jar 내부를 참조 → 실제 Webjar 경로는 복잡함 그러나 /webjars/** 로 쉽게 접근가능 정적 리소스 맵핑처럼, webjar 요청에 대한 경로를 맵핑해주고 있다는 의미! 1234567891011121314151617 HelloHello Static Resources $(function() { al.. 2020. 4. 23.
[spring] 스프링 웹 MVC의 정적 리소스 지원 정적 리소스 제공 정적 리소스 : 웹 브라우저나 클라이언트가 요청했을 때, 이미 만들어져 있는 리소스를 응답하는 경우 서버에서 요청을 처리해서 view를 만들어내는 게 아니라, 이미 만들어진 리소스를 제공 기본으로 제공하는 정적 리소스 맵핑 "/**" (루트맵핑) classpath:/static classpath:/public classpath:/resources classpath:/META-INF/resources ex) /hello.html → /static/hello.html 을 제공할 수 있음 정적 리소스 요청 핸들러 ResourceHttpRequestHandler 리소스 객체의 Last-Modifed 헤더와, HTTP 요청의 If-Modified-Since 헤더를 비교 둘이 같은 경우, 304 .. 2020. 4. 23.
[spring] 스프링 웹 MVC의 ViewResolver 스프링 웹 MVC의 컨트롤러 Controller view name을 반환하거나 반환값을 HTTP Response Body에 쓴다. 1번은 @ResponseBody를 handler method에 사용하지 않을 때 view name 반환 스프링 웹 MVC에서는 DispatcherServlet가 ContentNegotiationViewResolver에게 view name 전달 ContentNegotiationViewResolver는 등록된 view resolver들에게 보내, 요청의 응답을 만들 수 있는 모든 view를 찾아낸다 URL의 파라미터와 Accept 헤더를 보고 적절한 view를 결정한다. 처리결과를 담은 view를 반환한다. ContentNegotiationViewResolver는 다른 view .. 2020. 4. 21.
[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.