스프링 개발 환경 구축 01 개발을 위한 준비 1.5 Java Configuration을 하는 경우

Spring Legacy Project 생성 후, 

1) web.xml(tomcat)의 파일 삭제 및 스프링 관련 파일(servlet-context.xml(웹관련스프링설정파일), root-context.xml(스프링설정파일)) 삭제

▶ 스프링 관련 파일삭제는 스프링 폴더 자체를 삭제시켜야한다.


2) pom.xml의 수정 및 스프링 버전 변경

▶ web.xml을 삭제하면 pom.xml에서 에러가 발생하는데, 기본세팅이 web.xml로 되어있어서 pom.xml의 하단부에 내 아래설정을 추가해준다.

//pom.xml의 일부
<plugin>
	<grouId>org.apache.maven.plugins</groupId>
    <artifactId>maven-war-plugin</artifactId>
    <version>3.2.0</version>
    <configuration>
    	<failOnMissingWebXml>false</failOnMissingWebXml>
    </configuration>
</plugin>

...
//스프링 버전 변경
<properties>
	<java-version>1.8</java-version>
    <org.springframework-version>5.0.7.RELEASE</org.springframework-version>
    
    ...
// 컴파일 관련 버전 역시 1.8로 수정    
<plugin>
	<groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>2.5.1</version>
    <configuration>
    	<source>1.8</source>
        <target>1.8</target>
        <compilerArgument>-Xlint:a

수정 후, Maven > Update Project 실행

3) java 설정(Java Configuration) 관련 패키지 생성 후 → @Configuration

java 설정(Java Configuration) 을 이용하는 경우 XML 대신 설정파일을 직접 작성해야하는데, @Configuration 이라는 어노테이션을 이용해서 해당 클래스의 인스턴스를 이용해서 설정파일을 대신한다.

▶프로젝트내 org.zerock.config 라는 폴더 생성하고 RootConfig 클래스를 작성 (root-context.xml을 대신한다)

pacakage org.zerock.config;

import org.springframework.context.annotation.Configuration;

@Configuration
public class RootConfig{

}

▶스프링 구동하는 web.xml 을 대신하는 클래스 작성

package org.zerock.config;

import org.springframework.web.servlet.support.
AbstractAnnotationConfigDispatcherServletIntitializer;

public class WebConfig extends
	AbstractAnnotationConfigDispatcherServletInitializer {
    
    @Override
    protected Class<?>[] getRootConfigClasses(){ //root-context.xml을 대신하는 클래스를 지정
    	return new Class[] {RootConfig.class}; // 변경하였다.
    }
    
    @Override
    protected Class<?>[] getServletConfigClasses(){
    	return null;
    }
    
    @Override
    protected String[] getServletMappings() {
    	return null;
    }
    
}

 

댓글()
구독