최근 스프링을 포함한 DI 프레임워크 대부분이 생성자 주입을 권장한다.
public
으로 열어 두어야 한다📍 생성자 주입은 객체를 생성할 때 딱 1번만 호출되므로 이후에 호출되는 일이 없다. -> 불변
생성자 주입을 사용하면 주입 데이터를 누락했을 때 컴파일 오류 가 발생한다
@Component
public class OrderServiceImpl implements OrderService {
private final MemberRepository memberRepository;
private final DiscountPolicy discountPolicy;
@Autowired
public OrderServiceImpl(MemberRepository memberRepository, DiscountPolicy discountPolicy) {
this.memberRepository = memberRepository;
}
//...
}
discountPolicy
에 값을 성정해야하는데 누락, 자바는 컴파일 시점에 오류를 발생
😁컴파일 오류는 가장 빠르고 좋은 오류다 !!
final
키워드 사용불가임이 게시글은 인프런 김영한 스프링 강의를 정리한 글입니다.