[spring] Lombok 설치, Java Configuration
업데이트:
Lombok이란?
Lombok은 Java 개발 시 자주 사용하는 getter/setter, toString(), 생성자 등을 자동으로 생성해주는 라이브러리이다.
Lombok 설치
홈페이지 상단 네비 바에서 Download
클릭해서 jar 파일을 다운받으면 된다.
다운을 다 받으면 원하는 폴더나, 혹은 다운로드 폴더에 있는 jar 파일을 cmd로 실행시킨다.
cd 경로
java -jar lombok.jar
위의 명령어를 입력하면 다음과 같은 창이 뜬다.
위에 사진에서 이클립스 경로가 본인이 다운한 이클립스 경로가 아니면 Specify location...
버튼을 눌러 경로를 다시 잡아 Install/Update
를 클릭해 설치를 진행한다.
다운로드가 완료되면 이클립스가 다운되어 있는 폴더에 lombok
파일이 추가된 것을 확인할 수 있다.
Java Configuration을 하는 경우
Eclipse(STS)를 통해 생성하는 ‘Spring Legacy Project’의 경우 XML 기반으로 스프링 관련 설정을 한다. 스프링 3버전 이후에는 JAva 클래스 파일을 이용하는 설정을 지원하는데, 최근 인터넷에 공개된 예제들 역시 XML과 별개로 Java를 이용하는 설정(Java Configuration)이 점점 증가하고 있다.
실습을 위해 Spring Legacy Project로 설정한 ‘jex00’ 프로젝트를 하나 생성한다.
XML 파일 삭제
- web.xml
- servlet-context.xml
- root-context.xml
위의 세 개의 파일을 삭제한다. web.xml
을 제외한 다른 파일들은 spring 폴더 내에 있으므로 spring 폴더 자체를 삭제하면 된다.
web.xml
을 삭제하면 pom.xml
에서 에러가 발생한다. 왜냐하면 과거의 웹 프로젝트들이 기본적으로 web.xml을 사용하는 것을 디폴트로 설정했기 때문이다. 에러를 해결하기 위해서는 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>
pom.xml의 스프링 버전도 변경한다.
컴파일 버전도 1.8 버전으로 수정 후 ‘Maven > Update Project’를 실행한다.
@Configuration
스프링은 @Configuration이라는 어노테이션을 사용해 해당 클래스의 인스턴스를 이용해 설정 파일을 대신한다.
프로젝트 내 다음과 같은 위치에 새로운 패키지를 생성하고, RootConfig 클래스를 생성한다.
//RootConfig 클래스
package org.zerock.config;
import org.springframework.context.annotation.Configuration;
@Configuration
public class RootConfig {
}
web.xml을 대신하는 클래스 작성
XML을 사용하지 않는 경우에는 이 역할을 대신하는 클래스를 작성해야한다. org.zerock.config 패키지 내에 WebConfig
클래스를 생성한다.
package org.zerock.config;
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;
}
}
작성된 WebConfig 클래스는 3개의 추상 메서드를 오버라이드 하도록 작성된다. 이때 생성된 getRootConfig() 클래스는 ‘root-context.xml’을 대신하는 클래스를 지정하는데 예제는 RootConfig 클래스를 사용하므로 아래와 같이 메서드의 내용을 변경한다.
@Override
protected Class<?>[] getRootConfigClasses() {
return new Class[] {RootConfig.class};
}
- 참고 : 코드로 배우는 스프링 웹 프로젝트
댓글남기기