자동주입 옵션처리

이연희·2022년 2월 5일
0

Spring

목록 보기
34/105
post-custom-banner

자동 주입 대상을 옵션으로 처리하는 방법

  1. @Autowired(required = false)
  2. org.springframework.lang.@Nullable
  3. Optional<>

@Autowired(required = false)

🔹 자동 주입할 대상이 없으면 수장자 메서드 자체가 호출 되지 않는다.

//호출 안됨
@Autowired(required = false)
public void setNoBean1(Member member){
	System.out.println("setNoBean1 = " + member);
}

org.springframework.lang.@Nullable

🔹 자동 주입할 대상이 없으면 null이 입력된다.

//null 호출
@Autowired
public void setNoBean2(@Nullable Member member){
	System.out.println("setNoBean2 = " + member);
}
setNoBean2 = null

Optional<>

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

//Optional.empty 호출
@Autowired
public void setNoBean3(Optional<Member> member){
	System.out.println("setNoBean3 = " + member);
}
setNoBean3 = Optional.empty

정리

🔸 생성자 주입 방식을 사용하면 프레임워크에 의존하지 않고 순수한 자바 언어의 특징을 살린다.
🔸 기본으로 생성자 주입을 사용하고 필수 값이 아닌 경우에는 수정자 주입 방식을 옵션으로 부여하면 된다.

profile
공부기록
post-custom-banner

0개의 댓글