롬북에서 지원하는 @RequiredArgsConstructor = 생성자 자동주입.
이걸 클래스 위에 선언해주면 생성자는 따로 만들지 않아도 된다.
autowired할 객체들은 final로 만들어 준다.
ex) lombok을 안썼을때
@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;
}
----------------------------------------------------------------------------------------
ex) lombok을 썼을때
@Component
@RequiredArgsConstructor
public class OrderServiceImpl implements OrderService {
private final MemberRepository memberRepository; // 생성자가 하나여서 @Autowired가 생략되었다
private final DiscountPolicy discountPolicy; // 생성자가 하나면 @Autowired가 자동 주입된다.
// 생성자가 하나일땐 @Autowired가 생략 가능하다
package hello.core;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
@Getter
@Setter
@ToString
public class HelloLombok {
private String name;
private int age;
public static void main(String[] args){
HelloLombok helloLombok = new HelloLombok();
helloLombok.setName("abadsf");
System.out.println("helloLombok = " + helloLombok);
}
}
'스프링강의' 카테고리의 다른 글
스프링 자동 수동 정리 (0) | 2021.06.22 |
---|---|
빈이 두개일때 매칭하는 방법 (0) | 2021.06.21 |
Bean 의존 관게 설정 법 /property와 constructor-arg 차이 - 사좋배 공유 (0) | 2021.06.19 |
No qualifying bean of type 'hello.core.member.MemberService' available 에러난 이유 (0) | 2021.06.17 |
@Autowired (0) | 2021.06.17 |