- Today
- Total
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- mongodb
- Err-Handling
- LEVEL1
- 코딩테스트
- TIL
- LEVEL 2
- Docker
- TMIL
- 면접을 위한 cs 전공지식 노트
- CSS
- 아고라스테이츠
- Git
- MariaDB
- 프로그래머스
- LEVEL 1
- 오늘도 개발자가 안된다고 말했다
- react
- TWIL
- typescript
- 배포
- 코어 자바스크립트
- 알고리즘
- java
- javascript
- 리팩터링 2판
- Refactoring
- sql
- CRUD
- First Project
- 에러핸들링
성장에 목마른 코린이
[Java] Lombok Annotation 본문
@Data
Data Annotation은 @Getter, @Setter, @RequiredArgsConstructor, @ToString, @EqualsAndHashCode
를 한꺼번에 설정해주는 매우 유용한 Annotation입니다.
클래스 레벨에서 @Data를 붙여주면, 모든 필드를 대상으로 접근자와 설정자가 자동으로 생성되고,
final 또는 @NonNull 필드 값을 파라미터로 받는 생성자가 만들어지며, toString, equals, hashCode 메소드가 자동으로 만들어집니다.
@Getter @Setter (접근자/설정자 자동 생성)
Lombok에서 가장 많이 사용되는 Annotation 입니다.
예를 들어, x라는 필드에 선언하면 자동으로 getX()와 setX() 메소드를 생성해줍니다. (boolean 타입인 경우 getX 대신 isX())
또한, 필드 레벨이 아닌 클래스 레벨에 @Getter 또는 @Setter를 선언해줄 경우, 모든 필드에 접근자와 설정자가 자동으로 생성됩니다.
@NoArgsConstructor, @AllArgsConstructor, @RequiredArgsConstructor (생성자 자동 생성)
@NoArgsConstructor은 파라미터가 없는 기본 생성자를 생성해주고,
@AllArgsConstructor은 모든 필드 값을 파라미터로 받는 생성자를 만들어줍니다.
@RequiredArgsConstructor은 final이나 @NonNull인 필드 값만 파라미터로 받는 생성자를 만들어줍니다.
@ToString (메소드 자동 생성)
toString() 메소드를 작성하는 것도 여간 귀찮은 일이 아닙니다.
하지만 Lombok을 사용하면 @ToString 만 클래스에 붙여주면 자동으로 생성해줍니다.
exclude 속성을 사용하면 특정 필드를 toString() 결과에서 제외시킬 수도 있습니다.
@EqualsAndHashCode (equals, hashCode 자동 생성)
Java Bean을 만들 때 equals와 hashCode메소드를 자주 오버라이딩 합니다.
EqualsAndHashCode Annotation을 사용하면 자동으로 이 메소드를 생성할 수 있습니다.
callSuper 속성을 통해 equals와 hashCode 메소드 자동 생성시 부모 클래스의 필드까지 감안할지 안 할지에 대해서 설정할 수 있습니다.
callSuper = true로 설정하면 부모 클래스 필드 값도 동일한지 체크하며,
callSuper = false로 설정하면 자신 클래스의 필드 값만 고려합니다.
@Value
Value Annotation은 설정파일(.properties.yml)에 설정한 내용을 주입시켜주는 어노테이션입니다.
DB 연결에 필요한 정보나 노출되기 민감한 값들을 하드코딩하게 된다면, 여러가지 이슈에 휘말릴 수 있습니다.
또한 개발 시엔 로컬에 맞는 환경으로 세팅을 했지만, 클라우드 서버에 올린다거나 배포 환경으로 전환될 때,
직접 해당 코드를 수정해야 하는 번거로움이 있습니다.
이러한 이슈들을 막기 위해 민감한 정보나, 메타정보들은 파일로 따로 빼두어 관리하게 됩니다. (수정과 관리가 용이하기 때문)
이러한 이유로 따로 빼둔 설정 파일을 필요한 곳에 주입시켜주는 어노테이션이 Value입니다.
사용 방법은 @Value안에 파라미터로 EL형식의 키 값을 넣어주면, 불러올 수 있습니다.
@Value("$(프로퍼티 키값)")의 형태로 입력하게 되면, 해당 변수에 값이 주입하게 됩니다.
'Java' 카테고리의 다른 글
[Java] Netty Framework 소개 (0) | 2022.10.31 |
---|---|
[Java] enum 클래스의 사용과 이해 (0) | 2022.10.31 |
[Java] 배열 관련 기본 내장 함수 (0) | 2022.10.21 |
[Java] 원시자료형의 명칭과 크기 (0) | 2022.10.21 |
[Java] String 관련 기본 내장 함수 (0) | 2022.10.21 |