본문 바로가기
Spring

[Springboot] Lombok 의 어노테이션(Annotation)

by JJH0100 2023. 1. 4.
728x90
반응형

@Getter, @Setter

Lombok에서 가장 자주 활용하는 어노테이션 Getter, Setter 메소드를 만들어준다.

package com.mysite.study;

import lombok.Getter;
import lombok.RequiredArgsConstructor;
import lombok.Setter;

@Getter
@Setter
public class HelloLombok {
	private String hello;
	private int lombok;

	public static void main(String[] args) {
		HelloLombok helloLombok = new HelloLombok();
		helloLombok.setHello("테스트");
		helloLombok.setLombok(15);
		
		System.out.println(helloLombok.getHello());
		System.out.println(helloLombok.getLombok());		
	}
}

 

 

@AllArgsConstructor

모든 변수를 사용하는 생성자 생성

 

@NoArgsConstructor

기본 생성자 생성

 

 

@RequiredArgsConstructor

속성에 final을 적용하고 롬복의 @RequiredArgsConstructor 애너테이션을 적용하면  해당 속성을 필요로 하는 생성자가 생성된다. (※ final이 없는 속성은 생성자에 포함되지 않는다.)

package com.mysite.study;

import lombok.Getter;
import lombok.RequiredArgsConstructor;

@Getter
@RequiredArgsConstructor
public class HelloLombok {
	private final String hello;
	private final int lombok;

	public static void main(String[] args) {
		HelloLombok helloLombok = new HelloLombok("헬로", 5);
		
		System.out.println(helloLombok.getHello());
		System.out.println(helloLombok.getLombok());		
	}
}

 

 

@EqualsAndHashCode

클래스에 대한 equals 함수와 hashCode 함수를 자동으로 생성

 

 

@ToString 

클래스의 변수들을 기반으로 ToString 메소드를 생성

@ToString.Exclude 어노테이션을 붙여주면 출력을 제외할 수 있다.

상위 클래스에 toString을 적용시키고자 한다면 @ToString(callSuper = true) 

 

 

@Data 

@ToString, @EqualsAndHashCode, @Getter, @Setter, @RequiredArgsConstructor를 모두 지원한다.

@Data를 사용하면 사실 간단하지만 너무 무겁고 안정성읨 문제로 실무에서는 지양하는 편.

 

@Builder

해당 클래스의 객체의 생성에 Builder패턴을 적용

모든 변수들에 대해 build하기를 원한다면 클래스 위에 @Builder 선언

특정 변수만을 build하기 원한다면 생성자를 작성하고 그 위에 @Builder를 선언한다.

 

 

@Delegate 

객체의 메소드를 다른 객체로 위임시켜 준다. 

 

 

 

 

참고자료

https://mangkyu.tistory.com/78

https://wikidocs.net/160957

728x90
반응형

댓글