스프링 핵심 원리

@Autowired 다양한 옵션들

notx2wice 2021. 11. 1. 20:15

자동 주입 대상을 옵션으로 처리하는 방법은 다음과 같다.
@Autowired(required=false) : 자동 주입할 대상이 없으면 수정자 메서드 자체가 호출 안됨

org.springframework.lang.@Nullable : 자동 주입할 대상이 없으면 null이 입력된다.

Optional<> : 자동 주입할 대상이 없으면 Optional.empty 가 입력된다.

//Member는 스프링 빈이 아니다!
//호출 안됨
@Autowired(required = false)// 저를 연결시켜주세용 이란 말
public void setNoBean1(Member member) { // 멤버의 객체가 컨테이너에 없다. 메서드 호출 x
        System.out.println("setNoBean1 = " + member);
    }
//null 호출
@Autowired
public void setNoBean2(@Nullable Member member) {
        System.out.println("setNoBean2 = " + member);
    }// 
//Optional.empty 호출
@Autowired(required = false)
public void setNoBean3(Optional<Member> member) {
        System.out.println("setNoBean3 = " + member);
    }

출력 결과

setNoBean2 = null

setNoBean3 = Optional.empty