◎ JAVA Configuration을 하는경우 (java vs xml)
-Eclipse(STS)를 통해 생성하는 'Spring Legacy project'의 경우 XML기방으로 스프링 관련 설정을 하도록 되어있다.
스프링 3번전 이후에는 JAVA 클래스 파일을 이용한 설정 지원하는데 .요즘 XML설정 외에도 JAVA 를 이용한 설정이 점점 증가하고 있다 .
(국내는 아직 XML방식이 많있음)
서두에 배웠던 ( 참고해 주세요 http://tjsdudkim.tistory.com/72?category=768042 이건 xml 기반)
'Spring Legacy project' 프로젝트를 생성합니다.(java설정 방법으로 진행할 프로젝트 생성 )
-jex00프로젝트 생성-
이후에는 다음과 같은 작업을 할 것이다
→ web.xml의 파일 삭제 및 스프링 관련 파일 삭제
→ pom.xml의 수정 및 스프링 버전 변경
→ JAVA설정 관련 패키지 생성
1.xml파일 삭제
web.xml + servlet-context.xml + root--context.xml 를 삭제 (Spring이라는 폴더 자체를 삭제하면 된다)
web.xml 과 달리 다른 파일들은 spring이라는 이름의 폴더 내에 있으므로 spring폴더 자체를 삭제하고, 아래 형태가 되어야 함.
web.xml을 삭제하면 pom.xml에서 에러가 발생 -> 과거의 웹 프로젝트들이 기본적으로 web.xml을 사용하는 것을 기본으로 설정 했기 때문임.
에러 해결 방법 = pom.xml의 하단 부에 아래 코드 추가 해준다
<!--plugin 추가 java설정 -->
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의 스프링 버전 변경
<properties>
<java-version>1.8</java-version>
<org.springframework-version>5.0.7.RELEASE</org.springframework-version>
이후
' 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>
java설정을 이용하는 프로젝트는 기존과 달리 여러 설정 파일을 직접 작성해야 하므로 뒤의 예제들에서 사용하는 설정들을 추가해야만 정상상적으로 돌아간다
( 순차적으로 통해서 알아봅시다)
1. @Configuration
앞서 말한 것 처럼 java설정은 직접 작성으로 이뤄집니다 .
스프링에서는 @Configuration이라는 어노테이션을 이용해서 해당 클래스의 인스턴스를 이용해서 설정파일을 대신합니다
프로젝트 내에 org.zerock.config패키지를 만드고 그곳에 RootConfig 클래스 생성
생성후 이와 같이 작성
package org.zerock.config;
import org.springframework.context.annotation.Configuration;
@Configuration
public class RootConfig {
}
2.web.xml을 대신하는 클래스 작성
월래는 web.xml을 이용해서 스프링을 구동 시켰지만 .xml을 사용하지 않으면 이 역할을 대신하는 클래스로 해서 작성하고 처리한다.
org.zerock.config패키지에 WebConfig생성.
WebConfig클래스 AbstractAnnotationConfigDispatcherServletInitializer를 상속하여 작성.
import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;
public class WebConfig extends
AbstractAnnotationConfigDispatcherServletInitializer{
@Override
protected Class<?>[] getRootConfigClasses() {
return null;
}
@Override
protected Class<?>[] getServletConfigClasses() {
return null;
}
@Override
protected String[] getServletMappings() {
return null;
}
}
3개의 추상 메서드 를 오버라이드 해줍니다
getRootConfig클래스 = 'root-context.xml'을 대신하는 클래스를 지정하는데 예제는 RootConfig 클래스를 사용하므로 아래와같이 메서드 내용변경
'코드로배우는 스프링 웹 프로젝트 ' 카테고리의 다른 글
스프링의 특징과 의존성 주입2-3 (0) | 2018.10.20 |
---|---|
스프링의 특징과 의존성 주입2-2 (0) | 2018.10.20 |
스프링의 특징과 의존성 주입1-2 (0) | 2018.10.20 |
Lombok라이브러리 설치 (0) | 2018.10.18 |
프로젝트생성과 Tomcat연동 확인 (0) | 2018.10.18 |