TIL/Java & Spring Boot

주입할 스프링 빈이 없어도 동작해야 하는 경우

삼공비 2024. 6. 3. 00:48
  • 3가지 방법이 있다
  • @Autowired에 required false 옵션을 준다
    • false 옵션을 주면 해당 빈이 없는 경우에는 아래 메서드를 아예 실행 시키지 않는다
@Autowired(required = false)
public void setNoBean1(Member noBean1) {
	콘솔 출력
}

  • 주입 받아야하는 빈에 @Nullable 어노테이션을 달아준다
    • 빈이 없는 경우에는 null을 반환한다
@Autowired
public void setNoBean1(@Nullable Member noBean1) {
	콘솔 출력
}

  • 빈을 Optional로 감싸준다
    • 빈이 없는 경우 Optional.empty를 반환한다
@Autowired(required = false)
public void setNoBean1(Optional<Member> noBean1) {
	콘솔 출력
}