스프링 부트로 프로젝트를생성하면 기본설정이 어노테이션이 설정되어있는데
MVC 프로젝트로 생성하면 기본설정은 XML로 되어있습니다.
XML로 기본설정 되어있는부분을 어노테이션으로 수정하여 사용하는 방법을 올려볼려고합니다.
수정되는 XML 파일은 아래파일입니다.
servlet-context.xml
root-context.xml
web.xml
이 3개의 파일을 삭제후
class파일로 작업을 진행할려고합니다 .
우선 spring 폴더와 web.xml을 삭제후
src 경로에 아래같이 3개의 클래스를 추가합니다.
대체되는 파일의 역할은 다음과 같습니다.
root-context.xml => RootConfig.java
servlet-context.xml => ServletConfig.java
web.xml => WebConfig.java
우선 RootConfig.java 파일입니다.
아직 Bean등록을 하지않았기때문에 비어있는모습이구요
기본설정파일은 @Configuration 이용하여 빈에 등록해줘야합니다.
package com.memory.java.config;
import org.springframework.context.annotation.Configuration;
@Configuration
public class RootConfig {
}
ServletConfig.java
@EnableWebMvc : servlet-context.xml 에서의 <annotation-driven /> 역할과 같습니다.
우선 WebMvcConfigurer 구현 합니다.
그후 아래의 2개의 메소드를 재구현 합니다.
configureViewResolvers 메소드의 역할은 servlet-context.xml 에서의 <beans:bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 을 대신합니다.
addResourceHandlers 메소드의 역할은 <resources mapping="/resources/**" location="/resources/" /> 의역할을 대신합니다.
package com.memory.java.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.memory.java"})
public class ServletConfig implements WebMvcConfigurer{
@Override
public void configureViewResolvers(ViewResolverRegistry registry) {
InternalResourceViewResolver bean = new InternalResourceViewResolver();
bean.setViewClass(JstlView.class);
bean.setPrefix("/WEB-INF/views/");
bean.setSuffix(".jsp");
registry.viewResolver(bean);
}
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/resources/**").addResourceLocations("/resources");
}
}
WebConfig.java
우선 아래와 같이 Ab~~ 클래스는 상속받습니다.
그러면 3개의 메소드를 필수 재구현해야하는데요!
작성방법은 간단합니다.
new Class 이용하여 class위치를 알려주면됩니다.
package com.memory.java.config;
import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;
public class WebConfig extends AbstractAnnotationConfigDispatcherServletInitializer{
@Override
protected Class<?>[] getRootConfigClasses() {
return new Class[] {RootConfig.class};
}
@Override
protected Class<?>[] getServletConfigClasses() {
return new Class[] {ServletConfig.class};
}
@Override
protected String[] getServletMappings() {
return new String[] {"/"};
}
}
지금 이 실습을하면서 느낀것은 그냥 한번쯤은 알고지나가야 할것같아 실습해보았습니다.
아예 모르는것보다 한번 보고 지나가면 나중에 생각나지 않을까합니다 ..
결론 스프링 어렵다.
'프로그래밍 > Spring' 카테고리의 다른 글
Spring - 15. parameter 전송 및 받아오기 (0) | 2021.10.28 |
---|---|
Spring - 14. MVC mapping (0) | 2021.10.27 |
Spring - 13. MVC 프로젝트 (0) | 2021.10.26 |
Spring - 12. pom.xml 기본설정 (0) | 2021.10.26 |
Spring - 12. MAVEN (0) | 2021.10.26 |