Spring - 14. Web MVC Project 기본설정(어노테이션 버전)

스프링 부트로 프로젝트를생성하면 기본설정이 어노테이션이 설정되어있는데

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
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유