lombok은 getter, setter , 생성자 등 자동 생성을 지원해주는 기능입니다.
그중에서 NoargsConstructor, RequiredArgsConstructor, AllArgsConstructor 를 구분하는게 필요해서 간략하게 포스팅해보려 합니다.
public class Board {
private int age;
private Long id;
}
@NoArgsConstructor
기본 생성자를 생성해줍니다. 이 경우 초기값 세팅이 필요한 final 변수가 있을 경우 컴파일 에러가 발생하니 주의해야 합니다.
Board board = new Board();
// @NoArgsConstructor(force=true) 를 사용하면 null, 0 등 기본 값으로 초기화 된다.
@NoArgsConstructor
public class Board {
private int age;
private Long id;
}
@RequiredArgsConstructor
final 변수, Notnull 표시가 된 변수를 생성자에서 parameter로 읽어오도록 생성 가능합니다.
Board board = new Board(2L);
@RequiredArgsConstructor
public class Board {
private int age;
private final Long id;
}
@AllArgsConstructor
전체 변수를 생성하는 생성자를 만들어줍니다.
Board board = new Board(1, 2L);
@AllArgsConstructor
public class Board {
private int age;
private final Long id;
}
이 어노테이션들은 이처럼 단순 객체에서 매핑시킬때 사용할 수도 있으며,
Service나 Repository의 의존성 주입을 자동으로 시켜주도록 하는데에도 사용할 수 있습니다.
이를 위해 의존성 주입이 필요한 메소드를 final로 설정해 사용하기도 합니다.
혹시나 실수로 다른곳에서 생성자를 별도로 만들어 사용하려 한다면, 싱글톤 패턴이 깨질수 있기에 이를 방지하기 위함도 있다고 합니다.
'IT기술 > spring' 카테고리의 다른 글
[Spring] MVC에서 메시지 컨버터로 응답 만들기 (0) | 2024.02.16 |
---|---|
[Spring] response 응답 한글 지원하도록 하기 (0) | 2024.02.14 |
[Spring] Bean 수동 등록, 자동 등록 구분하기 (0) | 2024.02.11 |
[spring] postgre db JDBC 연결 테스트 (0) | 2024.01.23 |
[spring] 스프링 부트 웹 프로젝트의 프론트 기술 thymeleaf란? (0) | 2023.07.13 |