본문 바로가기

Spring

[spring] appplicationContext 사용하기

어딘가에서 봤던 글인데..

원문을 못 찾겠네... 외국 사이트였는데..


아무튼 spring에서 직접 생성되어 있는 applicationContext에 접근하려면, 해당 클래스가

ApplicationContextAware 인터페이스를 구현하고 있어야하고, 이를 DI 받기 위해서

자기 자신도 Spring Bean Factory에 등록이 되어야 한다. 일반적인 경우에는 별로 상관이 없었는데

이 ApplicationContext를 여기저기서 사용하고 싶을때.. 아래와 같이 사용 가능.


원래 있던 소스에 캐스팅이 귀찮아서 


public static <T> T getBean(String beanName, Class<T> requiredType) {
return CONTEXT.getBean(beanName, requiredType);
}

위 메서드를 하나 추가했다.



그리고 위 class를 아래와 같이 등록..


<bean
        id="springApplicationContext"
        class="com.tistory.devyongsik.config.SpringApplicationContext" >


이후에 다른 클래스에서는 SpringApplicationContext.getBean("name"); 
혹은 SpringApplicationContext.getBean("name", Type.class); 
로 사용이 가능하다.