[spring] Lombok 설치, Java Configuration

업데이트:


Lombok이란?

Lombok은 Java 개발 시 자주 사용하는 getter/setter, toString(), 생성자 등을 자동으로 생성해주는 라이브러리이다.

lombok
👆🏻 이미지 클릭 시 홈페이지로 이동

Lombok 설치

lombok1
홈페이지 상단 네비 바에서 Download 클릭해서 jar 파일을 다운받으면 된다.



다운을 다 받으면 원하는 폴더나, 혹은 다운로드 폴더에 있는 jar 파일을 cmd로 실행시킨다.

cd 경로
java -jar lombok.jar

lombok2

위의 명령어를 입력하면 다음과 같은 창이 뜬다.

lombok3

위에 사진에서 이클립스 경로가 본인이 다운한 이클립스 경로가 아니면 Specify location... 버튼을 눌러 경로를 다시 잡아 Install/Update를 클릭해 설치를 진행한다.

다운로드가 완료되면 이클립스가 다운되어 있는 폴더에 lombok 파일이 추가된 것을 확인할 수 있다.
lombok4




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 폴더 자체를 삭제하면 된다.

java설정1



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

자바설정2

컴파일 버전도 1.8 버전으로 수정 후 ‘Maven > Update Project’를 실행한다.

자바설정3



@Configuration

스프링은 @Configuration이라는 어노테이션을 사용해 해당 클래스의 인스턴스를 이용해 설정 파일을 대신한다.

프로젝트 내 다음과 같은 위치에 새로운 패키지를 생성하고, RootConfig 클래스를 생성한다.

자바설정4

//RootConfig 클래스
package org.zerock.config;

import org.springframework.context.annotation.Configuration;

@Configuration
public class RootConfig {

}



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

XML을 사용하지 않는 경우에는 이 역할을 대신하는 클래스를 작성해야한다. org.zerock.config 패키지 내에 WebConfig 클래스를 생성한다.

자바설정5

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





  • 참고 : 코드로 배우는 스프링 웹 프로젝트

태그:

카테고리:

업데이트:

댓글남기기