시스템

스프링 Java Configuration 세팅 방법

190730 2023. 3. 1. 16:06

기존의 스프링 설정은 XML 기반으로 이뤄졌다.

하지만 STS3 버전 이후에는 Java 클래스 파일을 이용하는 설정을 지원하고 점차 Java 설정을 이용하는 경우도 증가하고 있어서 해당 설정법을 정리해 보겠다.

 

1. 프로젝트 생성

기존과 동일한 방법으로 프로젝트를 생성한다.

Spring Legacy Project -> Spring MVC Project -> 패키지명 org.zerock.controller

 

 

 

이후 다음과 같은 작업을 진행해야 한다.

- web.xml 파일 삭제 및 스프링 관련 파일 삭제

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

- Java 설정 관련 패키지 생성

 

1. web.xml과 servlet-context.xml, root-context.xml 파일을 삭제 (폴더명: spring 자체 삭제)

2. pom.xml 하단에 플러그인 추가 ( 과거의 웹 프로젝트들이 기본적으로  web.xml 사용하는것으로 설정되어 있기 때문에 )

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <version>3.2.0</version>
                <configuration>
                 <failOnMissingWebXml>false</failOnMissingWebXml>                
                </configuration>
            </plugin>

 

3. pom.xml의 스프링 버전 수정, JDK 버전 수정, JRE System Library 버전 변경 1.6 -> 11

 (Legacy Project의 경우 기본적으로 스프링: 3.x, JDK 환경: 1.6을 기준으로 작성됨)

(스프링 5 버전의 경우 최소 Java 1.8 이상을 사용해야 함)

 

 

 

이후에 Maven -> Update Project 실행

 

 

4. Lombok 라이브러리 설치

getter/setter, toString(), 생성자 등을 자동으로 생성해주는 라이브러리 입니다.

 

https://projectlombok.org/

 

Project Lombok

 

projectlombok.org

다른 jar파일과 딜리 프로젝트의 코드에서만 사용되는 것이 아니라 Eclipse 에디터 내에서도 사용되어야 하기 때문에 별도로 설치해야합니다.

 

설치 후 STS경로를 잡아주고 인스톨을 눌러줍니다.

sts 폴더내에 lombok.jar 파일이 추가된것을 확인할 수 있습니다.

바로가기가 먹히지 않는다면 삭제 후 재 생성 해줍니다.

2. Java 설정

Java 설정을 이용하는 프로젝트는 기존(XML)과 달리 여러 설정 파일을 직접 작성해야 하므로 뒤의 아래의 나오는 설정들을 추가해야만 정상적으로 동작합니다.

 

 @Configuration

- 설정법에는 @Configuration 어노테이션을 이용해서 해당 클래스의 인스턴스를 이용해서 설정 파일을 대신합니다.

 

 

org.zerock.config 폴더 생성 후 RootConfig 클래스 작성 후 @Configuration 어노테이션 추가

 

web.xml을 대신하는 클래스 작성

기존 프로젝트는 web.xml을 이용해서 스프링을 구동시켰지만, XML을 사용하지 않는 경우에는 이 역할을 대신하는 클래스를 작성해서 처리합니다.

 

org.zerock.config 패키지 내에 WebConfig 클래스를 생성합니다.

 

AbstractAnnotationConfigDispatcherServletInitializer 추상 클래스를 상속합니다.

 

getRootConfig() 클래스는 root-context.xml을 대신하는 클래스를 지정하는데 위에서 만든 RootConfig 클래스를 사용하도록 설정합니다. 이후 작성된 프로젝트틀 실행하면 다음과 같은 로그가 기록되는것을 확인할 수 있습니다.