스프링 @Autowired의 여러가지 옵션

Sanghyeop Lee·2023년 2월 12일
0

Spring

목록 보기
1/5
post-thumbnail

스프링 @Autowired의 기본 옵션은 required=true인데 이때 의존관계 자동 주입 대상이 없으면 오류가 발생하게 된다.

주입할 스프링 빈이 없어도 동작해야하는 경우에는 다음과 같이 옵션을 설정해줄 수 있다.

1. @Autowired(required=false)

@Autowired(required = false)
public void setNoBean1(Member noBean1) {
	System.out.println("noBean1 = " + noBean1);
}

@Autowired의 옵션을 required=false로 설정하면 의존관계 자동 주입의 대상이 없으면 수정자(setter) 메서드가 호출 되지 않는다.

2. @Nullable

@Autowired
public void setNoBean2(@Nullable Member noBean2) {
	System.out.println("noBean2 = " + noBean2);
}

생성자의 의존성 주입을 위한 매개변수 앞에 @Nullable 어노테이션을 붙여주면 주입 대상이 없을 경우 null이 입력된다.

3. Optional<>

@Autowired
public void setNoBean3(Optional<Member> noBean3) {
	System.out.println("noBean3 = " + noBean3);
}

2와 비슷한데 주입 대상이 없을 경우 Optional.empty가 입력된다.

코드 실행 결과

noBean3 = Optional.empty
noBean2 = null

위 코드에서 Member 클래스는 스프링 빈이 아니기 때문에 코드를 실행하면 nullOptional.empty가 출력되는걸 확인할 수 있었다..!

참조

profile
개발자꿈나무

0개의 댓글