IT/Spring
@Accessors 어노테이션 설명
밥알이
2024. 3. 4. 16:18
lombok을 사용하면서 lombok에서 제공하는 어노테이션을 사용하게 됩니다.
이중 Accessors관련 어노테이션이 어떤 기능을 하고 어떤 경우에 사용하게 되는지 정리를 합니다.
Accessors
우선 간단한 샘플예제를 확인후 관련 기능을 설명합니다.
import lombok.AccessLevel;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import lombok.experimental.Accessors;
// @Accessors 어노테이션을 사용하여 getter 및 setter 작성 규칙을 설정합니다.
@Accessors(chain = true, fluent = true, prefix = "_")
public class Person {
// _name 필드에 대한 getter 및 setter 메서드를 생성합니다.
@Getter @Setter
private String _name;
// _age 필드에 대한 getter 및 setter 메서드를 생성합니다.
@Getter @Setter
private int _age;
// @ToString 어노테이션을 사용하여 toString 메서드를 생성합니다.
@Override
public String toString() {
return "Person(" + this._name + ", " + this._age + ")";
}
// main 메서드에서 클래스를 테스트합니다.
public static void main(String[] args) {
// 체이닝과 플루언트 스타일의 메서드 호출을 사용하여 객체를 생성하고 속성을 설정합니다.
Person person = new Person().name("John").age(30);
// 생성된 객체를 출력합니다.
System.out.println(person);
}
}
- chain: 메서드에 체이닝을 가능하게 합니다. this를 반환하여 메서드 호출을 연결할 수 있게 됩니다.
e.g) Person person = new Person().name("John").age(30); - fluent: 플루언트 스타일의 메소드를 생성할지 여부를 결정하고 기본값은 'false' 입니다.
setName / setAge 같이 set을 미사용할 수 있습니다.
e.g) Person person = new Person().name("John").age(30); - prefix: 생성할 getter 및 setter 메서드의 접두사로 사용하게 됩니다. 기본값은 없습니다.
this._name과 같이 변경하여 get메서드를 호출하게 됩니다.
e.g) return "Person(" + this._name + ", " + this._age + ")";