WebMvcConfigurer를 implements를 한다.
WebMvcConfigurer를 통해 기본적인 설정을 커스터마이징하거나 추가적인 기능을 확장할 수 있게 된다.
WebMvcConfigurer에서 addResourceHandlers(ResourceHandlerRegistry)와 configureViewResolvers(ViewResolverRegistry) 를 override 한다.
package com.basicWeb.www.config;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.ViewResolverRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
public class ServletConfiguration implements WebMvcConfigurer {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
// TODO Auto-generated method stub
WebMvcConfigurer.super.addResourceHandlers(registry);
}
@Override
public void configureViewResolvers(ViewResolverRegistry registry) {
// TODO Auto-generated method stub
WebMvcConfigurer.super.configureViewResolvers(registry);
}
}
먼저, resources 경로를 설정하기 위해 addResourceHandlers에 코드를 작성한다.
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/resources/**").addResourceLocations("/resources/");
}
그 후, view 폴더에서 JSP 파일을 찾아서 사용할 수 있도록 경로를 설정하고,
JstlView 클래스를 사용하여 JSTL을 활용할 수 있도록 configureViewResolvers에서 설정한다.
@Override
public void configureViewResolvers(ViewResolverRegistry registry) {
InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
viewResolver.setPrefix("/WEB-INF/views/");
viewResolver.setSuffix(".jsp");
viewResolver.setViewClass(JstlView.class);
registry.viewResolver(viewResolver);
}
마지막으로 어노테이션을 추가한다.
@EnableWebMvc
@ComponentScan(basePackages = {"com.myweb.www.controller", "com.myweb.www.handler"})
@EnableWebMvn는 웹 앱을 만들 때 필요한 설정들을 자동으로 켜주는 역할을 한다.
즉, 웹 사용을 Spring에게 알리는 것이다.
@ComponentScan은 Spring이 필요한 파일들을 알아서 찾아서 사용할 수 있게 해준다.
즉, @Controller, @Service, @Repository 등과 같은 특별한 역할을 하는 파일들을 찾아서
알아볼 수 있도록 도와준다.
전체적인 ServletConfiguration class는 다음과 같다.
ServletConfiguration.java
package com.basicWeb.www.config;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.ViewResolverRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import org.springframework.web.servlet.view.InternalResourceViewResolver;
import org.springframework.web.servlet.view.JstlView;
@EnableWebMvc
@ComponentScan(basePackages = {"com.myweb.www.controller", "com.myweb.www.handler"})
public class ServletConfiguration implements WebMvcConfigurer {
// resources 경로 설정 / 나중에 파일 업로드 경로 설정 추가
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/resources/**").addResourceLocations("/resources/");
}
// 뷰 경로 설정
// 생성자로도 설정 가능
//InternalResourceViewResolver viewResolver = new InternalResourceViewResolver("/WEB-INF/views/", ".jsp");
@Override
public void configureViewResolvers(ViewResolverRegistry registry) {
InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
viewResolver.setPrefix("/WEB-INF/views/");
viewResolver.setSuffix(".jsp");
viewResolver.setViewClass(JstlView.class);
registry.viewResolver(viewResolver);
}
}
[Spring] 05. ServletConfiguration class 설정
(다음 게시물 예고편)
[Spring] 06. RootConfig class 설정
얼렁뚱땅 주니어 개발자
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!