개발자였던 것/Spring

Java Configuration 사용하기 (@Configuration)

서으이 2020. 7. 29. 15:07
728x90
반응형

Eclipse(STS)를 통해 생성하는 Spring Legacy Project의 경우 XML을 기반으로 스프링 관련 설정을 하도록 되어 있습니다.

스프링 3버전 이후 Java 클래스 파일을 이용하는 설정을 지원하는데, XML과 별개로 Java를 이용하는 설정이 점점 증가하고 있습니다.

 

생성하는 프로젝트는 기존과 동일하게 Spring Legacy Project로 설정합니다.

프로젝트가 생성된 후에는 다음과 같은 작업을 진행합니다.

 

1.XML 파일 삭제

삭제해야 하는 대상의 파일은 web.xml과 servlet-context.xml, root-context.xml파일입니다.

web.xml과 달리 다른 파일들은 spring라는 이름의 폴더 내에 있으므로 spring 폴더 자체를 삭제하여야 합니다.

 

web.xml을 삭제하면 pom.xml에서 에러가 발생하는데, 이것은 과거의 웹 프로젝트들이 기본적으로 web.xml을 사용하는 것을 기본으로 설정했기 때문입니다.

이를 해결하기위해서는 pom.xml의 하단부에 <plugins> 내에 아래의 설정을 추가해줍니다.

 

1
2
3
4
5
6
7
8
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-war-plugin</artifactId>
    <version>3.2.0</version>
    <configuration>
        <failOnMissingWebXml>false</failOnMissingWebXml>
    </configuration>
</plugin>
cs

 

pom.xml의 spring 버전도 같이 변경합니다.

 

1
2
3
4
5
6
<properties>
    <java-version>1.8</java-version>
    <org.springframework-version>5.0.7.RELEASE</org.springframework-version>
    <org.aspectj-version>1.6.10</org.aspectj-version>
    <org.slf4j-version>1.6.6</org.slf4j-version>
</properties>
cs

 

컴파일 관련 버전 역시 1.8버전으로 수정하고 Maven -> Update Project를 실행합니다.

 

1
2
3
4
5
6
7
8
9
10
11
12
<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:all</compilerArgument>
        <showWarnings>true</showWarnings>
        <showDeprecation>true</showDeprecation>
    </configuration>
</plugin>
cs

@Configuration

Java 설정을 이용하는 경우에는 XML 대신 설정 파일을 직접 작성할 필요가 있습니다.

다행스럽게도 스프링은 @Configuration이라는 어노테이션을 이용해서 해당 클래스의 인스턴스를 이용해서 설정 파일을 대신 할 수 있습니다.

 

프로젝트 내에 config 폴더를 생성하고 RootConfig 클래스를 작성합니다.

 

 

 

728x90
반응형