🔹 자동 주입할 대상이 없으면 수장자 메서드 자체가 호출 되지 않는다.
//호출 안됨
@Autowired(required = false)
public void setNoBean1(Member member){
System.out.println("setNoBean1 = " + member);
}
🔹 자동 주입할 대상이 없으면 null이 입력된다.
//null 호출
@Autowired
public void setNoBean2(@Nullable Member member){
System.out.println("setNoBean2 = " + member);
}
setNoBean2 = null
🔹 자동 주입할 대상이 없으면 Optional.empty가 입력된다.
//Optional.empty 호출
@Autowired
public void setNoBean3(Optional<Member> member){
System.out.println("setNoBean3 = " + member);
}
setNoBean3 = Optional.empty
🔸 생성자 주입 방식을 사용하면 프레임워크에 의존하지 않고 순수한 자바 언어의 특징을 살린다.
🔸 기본으로 생성자 주입을 사용하고 필수 값이 아닌 경우에는 수정자 주입 방식을 옵션으로 부여하면 된다.