Java 개발시 매번 getter/setter/constuctor/equals/toString 등을 작성해 주는게 기계적인 노동에 해당한다.
이런 기계적인 반복작업을 쉽게 해주는것이 lombok project 이다.
https://projectlombok.org/
간단하게 말해서 Annotation으로 간단하게 Setter, Getter 등의 기본작업을 대신해주는 Project임.
많이 사용하는 Annotation 은 다음과 같다.
@Getter / @Setter
-Getter와 Setter 함수를 생성합니다.
-접근제어 : AccessLevel 지정을 통해서 접근레벨을 제한할 수 있습니다.
(PUBLIC, PROTECTED, PACKAGE, PRIVATE)
- @Getter(AccessLevel.PACKAGE), @Setter(AccessLevel.PRIVATE) getter/setter 관례에
따라서 get 필드명, set 필드명 메소드가 생성됨
@EqualsAndHashCode
- 코드에서 객체의 비교 등의 용도로 사용되는 equals(), hashCode() 메소드의 코드를
생성합니다.
- 특정 필드를 제외할 수가 있습니다.
@EqualsAndHashCode(exclude={“field1”, “field2”})
@ToString
- 객체의 내용을 문자열로 변환해주는 toString() 메소드를 대신할 수 있습니다.
- 특정 변수를 제외할 수 있습니다. @ToString(exclude=”field1”)
@Log
- 자동으로 logging을 위한 필드인 private static final Logger log 가 추가됩니다.
이후 로그를 출력하려는 곳에서 log.error(), log.warn(), log.debug(), log.info() 형태로
사용하면 됩니다.
@Data
- 모든 필드에 대한 getter, setter와 toString, equals, hashcode, final로 지정됐거나
@NonNull로 명시된 필드에 대한 값을 받는 생성자 메소드 코드를 생성합니다.
- Data를 사용하면 모든 private 필드에 @Getter와 @Setter를 적용시키고, 클래스에
@ToString 과 @EqualsAndHashCode를 적용시킵니다.
@AllArgsConstructor
- 모든 필드에 대한 값을 받는 생성자를 생성합니다.
- 접근제어 : AccessLevel 지정을 통해서 접근레벨을 제한할 수 있습니다.
(PUBLIC, PROTECTED, PACKAGE, PRIVATE)
설정
Maven
pom.xml에 dependency 추가
<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.16.10</version> </dependency> |
[Eclipse에서 Lombok 설치]
1. Lombok Download 에서 lombok.jar 를 다운로드합니다.
2. java -jar lombok.jar 로 Installer를 실행합니다.
3. “Specify Location”을 클릭한 후 플러그인을 설치할 Eclipse의 바이너리를 선택합니다.
4. “Install / Update” 를 클릭합니다.
[IntelliJ에서 Lombok 사용법]
1. Lombok IntelliJ Plugin : https://code.google.com/p/lombok-intellij-plugin/ 를 다운로드해서 Settings(Preference) > Plugins > Install Plugins from Disk 에서 다운받은 ZIP 파일을 지정하면 설치가 됩니다.
2. 또는 Browse Repository에서 lombok plugin을 찾아서 설치합니다.
3. modules setting에서 compiler->annotation processor에서 enable annotation processing을 활성화합니다.