java, spring

스프링 웹 프로젝트를 Java Configuration 으로 설정하기

isaac.kim 2021. 5. 5.
728x90
반응형

스프링 웹 프로젝트를 Java Configuration 으로 설정하기

 

도움이 되셨다면 광고 한 번 클릭 부탁드립니다. 한 번의 클릭이 제게 큰 힘이 된답니다!^^

 

보통 스프링 프로젝트를 한다고 하면 xml 로 설정을 하는 것으로 생각합니다. spring 3버전 이후부터는 xml로 설정했던 것을 Java로 설정할 수 있고, 점차 java configuration이 증가하고 있다 합니다.

 

이번 글에서는 Java로 Configuration 설정하는 방법에 대해 알아보도록 합니다.

 

1. 스프링 프로젝트 Java Configuration 을 위한 정리

반응형

1) web.xml 과 spring 관련 xml 을 모두 삭제합니다. 위 보이는 불긍 네모 안에 있는 것들 모두 삭제합니다.

 - web.xml, servlet-context.xml, root-context.xml 등

2) pom.xml 파일 내에 <plugins> 태그 하위에 다음 설정을 추가합니다.

            <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 의 스프링 버전도 변경합니다.

	<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>

4) pom.xml 의 컴파일 관련 버전 역시 1.8버전으로 수정하고 'Maven > Update Project'를 실행합니다.

            <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>

Java 설정의 경우 기존 프로젝트와 달리 여러 설정 파일을 작성하고 설정을 추가해야만 정상적으로 동작합니다.

 

 

 

2. @Configuration

 

스프링은 @Configuration 이라는 어노테이션을 이용해 설정 파일을 대신합니다.

 

Package 'com.project.config'를 생성하고, 'RootConfig.java' 파일을 생성하고 클래스에 @Configuration 어노테이션을 사용한 코드를 작성합니다.

 

 

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

 

web.xml을 삭제했기 때문에 java로 web.xml에서 설정했던 클래스를 작성해야 합니다.

 

Package 'com.project.config' 내에, 'WebConfig.java' 파일을 생성하고,

AbstraAbstractAnnotationConfigDispatcherServletInitializer 라고 하는 추상 클래스를 상속하도록 작성합니다.

 

WebConfig.java

package com.project.config;

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

public class WebConfig extends AbstractAnnotationConfigDispatcherServletInitializer{

	@Override
	protected Class<?>[] getRootConfigClasses() {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	protected Class<?>[] getServletConfigClasses() {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	protected String[] getServletMappings() {
		// TODO Auto-generated method stub
		return null;
	}

}

 

추상클래스를 상속받으면 3개의 추상 메서드를 오버라이드 하도록 작성됩니다.

 

첫 번째 메소드 getRootConfigClasses 는

'root-context.xml'을 대신하는 클래스를 지정하고, 여기선 RootConfig 클래스를 사용하므로 다음과 같이 내용을 변경합니다.

	@Override
	protected Class<?>[] getRootConfigClasses() { 
		return new Class[] {RootConfig.class};
	}

 

 

4. 실행 test

 

tomcat을 실행시키면 스프링 로그가 찍히는 것을 확인할 수 있습니다.

 


이번 포스트에서는 스프링 웹 프로젝트를 Java Configuration 으로 설정하기에 대해 알아보았습니다.

 

도움이 되셨다면 광고 한 번 클릭 부탁드립니다. 한 번의 클릭이 제게 큰 힘이 된답니다!^^
728x90
반응형