728x90
스프링 버전 변경
-폴더 및 파일 설명
- src/main/java : 작성되는 코드의 경로
- src/main/resources : 실행할 때 참고하는 기본 경로(주로 설정 파일)
- src/test/java : 테스트 코드를 넣는 경로
- src/test/resources : 테스트 관련 설정 파일 보관 경로
- src-main-webapp-WEB-INF-spring-appServlet-servlet-context.xml : 웹과 관련된 스프링 설정 파일
- src-main-webapp-WEB-INF-spring-root-context.xml : 스프링 설정 파일
- src-main-webapp-WEB-INF-views : 템플릿 프로젝트의 jsp 파일 경로
- src-main-webapp-web.xml : Tomcat의 web.xml 파일
- 프로젝트 - pom.xml : Maven이 사용하는 pom.xml
-버전 변경
Spring Legacy Project로 생성하는 프로젝트의 스프링 버전은 3버전, JDK 1.6기준으로 작성되어 있음
스프링 5버전을 이용할 것이므로 수정이 필요함.
생성된 프로젝트의 라이브러리는 pom.xml 파일을 통해 관리되므로 수정
//pom.xml의 일부
<name>ex00</name>
<packaging>war</packaging>
<version>1.0.0-BUILD-SNAPSHOT</version>
<properties>
<java-version>1.6</java-version>
<!-- <org.springframework-version>3.1.1.RELEASE</org.springframework-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>
<dependencies>
또한 스프링 5버전의 경우 자바 버전은 최소 1.8이상으로 사용해야함
//pom.xml 일부
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.5.1</version>
<configuration>
<!-- <source>1.6</source> -->
<!-- <target>1.6</target> -->
<source>11</source>
<target>11</target>
<compilerArgument>-Xlint:all</compilerArgument>
<showWarnings>true</showWarnings>
<showDeprecation>true</showDeprecation>
</configuration>
</plugin>
위와 같이 설정한 후 Alt+F5 또는 프로젝트에서 우클릭 Maven-Update Project
Lombok 라이브러리 설치
-Lombok을 이용하면 자바 개발 시 자주 사용하는 getter/setter, toString(), 생성자 등을 자동으로 생성해줌
Lombok은 별도로 설치해줘야함(다운로드 링크)
다운로드가 완료되었으면 cmd창을 열어 java -jar lombok.jar 명령어를 통해 설치
XML을 이용하지 않고 Java Configuration을 사용
-Spring Legacy Project의 경우 XML 기반으로 스프링 관련 설정을 하도록 되어 있음.
-3버전 이후에는 Java 클래스 파일을 이용하는 설정을 지원하는데, 최근 Java 클래스 파일을 이용하는 설정이 증가하고 있음.
-Java Configuration을 사용하는 경우
- XML 파일 삭제 : web.xml, servlet-context.xml, root-context.xml
- web.xml 삭제 시 om.xml에서 에러 발생
//pom.xml
<properties>
<java-version>11</java-version>
<org.springframework-version>5.0.7.RELEASE</org.springframework-version>
(...생략...)
<plugin>
<groupId>org.apach.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.2.0</version>
<configuration>
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
- @Configuration
@Configuration이라는 애너테이션을 이용해서 해당 클래스의 인스턴스를 이용해서 설정 파일을 대신함
package org.zerock.config;
import org.springframework.context.annotation.Configuration;
@Configuration //해당 클래스의 인스턴스를 이용해서 설정 파일을 대신
public class RootConfig {
}
- web.xml을 대신하는 클래스
AbstractAnnotaionConfigDispatcherServeltInitializer 추상 클래스를 상속받고, 오버라이딩
package org.zerock.config;
import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;
public class WebConfig extends AbstractAnnotationConfigDispatcherServletInitializer{ //XML을 사용하지 않는 경우 클래스를 작성해서 처리 → WebConfig.class
//AbstractAnnotationConfigDispatcherServletInitializer DispatcherServlet 설정
@Override
protected Class<?>[] getRootConfigClasses() { //root-context.xml을 대신하는 클래스를 지정
return new Class[] {RootConfig.class}; //Tomcat을 통해서 실행하면 간단하게 스프링 관련된 로그가 기록됨
}
@Override
protected Class<?>[] getServletConfigClasses() {
// TODO Auto-generated method stub
return null;
}
@Override
protected String[] getServletMappings() {
// TODO Auto-generated method stub
return null;
}
}
728x90
'organize > 스프링' 카테고리의 다른 글
프레임워크, Spring과 Spring Boot (1) | 2024.10.04 |
---|---|
redirect, redirect와 RequestDispatcher (0) | 2024.10.03 |
페이지 처리 (0) | 2024.10.02 |
스프링 프로젝트 정리 1 (0) | 2024.09.18 |
spring(스프링) 프로젝트 생성 (0) | 2024.02.03 |