벡엔드/SpringBoot
[Spring] 스프링 Lombok 어노테이션 정리
코딩하는이씨
2023. 7. 21. 00:45
728x90
반응형
접근자(get), 설정자(set) 자동 생성
- @Getter
- @Setter
@Getter
@Setter
public class UpdateItemDto {
private String name;
private int price;
private int stockQuantity;
}
생성자 자동생성
- @ReqiredArgsConstructor : 의존성 주입 방법 중 생성자 주입을 임의의 코드 없이 자동으로 설정해준다.
@RequiredArgsConstructor
public class OrderService {
private final OrderRepository orderRepository;
private final MemberRepository memberRepository;
private final ItemRepository itemRepository;
- @NoArgsConstructor : 아래와 같이 작성하지 않아도 파라미터가 없는 기본 생성자를 자동으로 생성해준다.
public UpdateItemDto() {}
- @AllArgsConstructor : 아래와 같이 작성하지 않아도 모든 필드 값을 파라미터로 받는 생성자를 자동으로 생성해준다.
public UpdateItemDto(String name, int price, int stockQuantity) {
this.name = name;
this.price = price;
this.stockQuantity = stockQuantity;
}
ToString 메소드 자동 생성
- @ToString(exclude = "옵션 값") : toString 메소드를 자동으로 생성해준다. (exclude사용시 특정필드를 toString() 결과에서 제외시킬 수 있다)
@ToString(exclude = "id")
public class User{
private Long id;
private String name;
private String email;
pribate String phoneNumber;
}
User = new User();
user.setName("John");
user.setEmail("xxx@.com");
user.setPhoneNumber("010-1234-1234");
System.out.print(user);
equals, hashcode 자동 생성
- @EqualsAndHashCode(callsuper = true/false) : equals와 hashcode 메소드를 자동으로 생성 해준다. (callsuper 속성을 통해 equals와 hashcode 메소드 자동 생성시 부모 클래스의 필드 까지 감안할지 안 할지에 대해서 설정해준다. true시 부모 클래스의 필드 값도 동일한지 체크)
@EqualsAndHashCode(callsuper = ture)
public class User{
private Long id;
private String name;
private String email;
pribate String phoneNumber;
}
User user1 = new User();
user.setName("John");
user.setEamil("aaa@.com");
user.setPhoneNumber("010-1111-1111");
User user2 = new User();
user.setName("John");
user.setEamil("aaa@.com");
user.setPhoneNumber("010-1111-1111");
user1.equals(user2) //true
위의 모든 Lombok 사용
- @Data : @Getter, @Setter, @RequiredArgsConstroctor, @ToString, @EqualsAndHashCode 를 모두 한번에 설정 해준다.
@Data
public class User {
...
}
728x90
반응형