Spring - 의존성 해석하기

 

스프링 IoC 컨테이너에 의존성 관계 알려주기

의존성 해석하기

  • 스프링은 구성 파일이나 구성 클래스에 적용된 애노테이션을 보고 의존성을 해석
  • 구성을 통해 명시하지 않으면 어떤 의존성도 인식하지 못함. 이럴 경우 주입될 bean보다 대상 bean이 먼저 생성이 되어 오류가 발생할 수 있음
  • ApplicationContextAware를 구현한 bean은 스프링 IoC 컨테이너에 의해 감지되어 내부에 ApplicationContext가 주입된다.
  • ApplicationContext 주입은 생성자 호출 이후에 진행되므로 생성자에서 ApplicationContext를 사용하게 되면 NullPointerException이 발생한다.

구성파일을 이용한 예제

<beans...>
	<!-- depends-on 속성을 이용하여 스프링 컨테이너가 의존성을 인식할 수 있도록 함 -->
	<bean id="johnMayer" class="com.apress...Singer"
		depends-on="gopher" />
	<bean id="gopher" class="com.apress...Guitar" />
</beans>

애노테이션을 이용한 예제

...
@Component(johnMayer)
@DependsOn("gopher") // @DependsOn 애노테이션을 이용하여 gopher bean이 주입되어야 함을 알림
public class Singer implements ApplicationContextAware {

	...