@Getter, @Setter
lombok을 설치 후 @Getter, @Setter 어노테이션을 사용하면, 굳이 코드로 getter, setter를 짜지 않아도 호출이 가능하다.
package hello.core;
import lombok.Getter;
import lombok.Setter;
@Getter
@Setter
/*클래스 내부에 getter, setter를 만들지 않아도 사용 가능*/
public class HelloLombok {
private String name;
private int age;
public static void main(String[] args) {
HelloLombok helloLombok = new HelloLombok();
helloLombok.setName("lombok"); // setter 호출
String name = helloLombok.getName(); // getter 호출
System.out.println("name = " + name);
}
}
name = lombok
@ToString
package hello.core;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
@Getter
@Setter
@ToString
/*클래스 내부에 toString() 만들지 않아도 사용 가능*/
public class HelloLombok {
private String name;
private int age;
public static void main(String[] args) {
HelloLombok helloLombok = new HelloLombok();
helloLombok.setName("lombok");
String name = helloLombok.getName();
System.out.println("name = " + name);
System.out.println("helloLombok = " + helloLombok);
}
}
name = lombok
helloLombok = HelloLombok(name=lombok, age=0)
@ToString을 사용하면 굳이 toString() 메소드 안 만들어도 호출 가능
@RequiredArgsConstructor
기존 방식
package hello.core.order;
import hello.core.discount.DiscountPolicy;
import hello.core.member.Member;
import hello.core.member.MemberRepository;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@Component
public class OrderServiceImpl implements OrderService{
private final MemberRepository memberRepository;
private final DiscountPolicy discountPolicy;
public OrderServiceImpl(MemberRepository memberRepository, DiscountPolicy discountPolicy) {
this.memberRepository = memberRepository;
this.discountPolicy = discountPolicy;
}
....
}
@RequiredArgsConstructor 사용
package hello.core.order;
import hello.core.discount.DiscountPolicy;
import hello.core.member.Member;
import hello.core.member.MemberRepository;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@Component
@RequiredArgsConstructor /*final이 붙은 필드에 대한 생성자 자동 생성*/
public class OrderServiceImpl implements OrderService{
private final MemberRepository memberRepository;
private final DiscountPolicy discountPolicy;
....
}
@RequiredArgsConstructor를 사용하면 final 키워드가 붙은 멤버들에 한해 생성자를 자동으로 생성해 주입해준다. 코드도 간결해지고 나중에 멤버를 추가할 때도 생성자를 건드릴 필요 없이 추가할 멤버에 final만 붙이면 되니까 간편하다.
'Spring' 카테고리의 다른 글
Spring- 조회한 빈이 모두 필요할 때(Map, List) (0) | 2023.01.31 |
---|---|
Spring- 중복되는 빈이 있는 경우, 의존 관계 자동 주입의 여러가지 방법 (0) | 2023.01.31 |
Spring- 옵션 선택 (0) | 2023.01.29 |
Spring- 의존관계 자동 주입 (0) | 2023.01.29 |
Spring- 컴포넌트 스캔시 필터 (0) | 2023.01.26 |