organize/스프링

1. 개발을 위한 준비

001cloudid 2024. 8. 27. 12:10
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