어딘가에서 봤던 글인데..
원문을 못 찾겠네... 외국 사이트였는데..
아무튼 spring에서 직접 생성되어 있는 applicationContext에 접근하려면, 해당 클래스가
ApplicationContextAware 인터페이스를 구현하고 있어야하고, 이를 DI 받기 위해서
자기 자신도 Spring Bean Factory에 등록이 되어야 한다. 일반적인 경우에는 별로 상관이 없었는데
이 ApplicationContext를 여기저기서 사용하고 싶을때.. 아래와 같이 사용 가능.
원래 있던 소스에 캐스팅이 귀찮아서
public static <T> T getBean(String beanName, Class<T> requiredType) {return CONTEXT.getBean(beanName, requiredType);}위 메서드를 하나 추가했다.
그리고 위 class를 아래와 같이 등록..
<beanid="springApplicationContext"class="com.tistory.devyongsik.config.SpringApplicationContext" >이후에 다른 클래스에서는 SpringApplicationContext.getBean("name");혹은 SpringApplicationContext.getBean("name", Type.class);로 사용이 가능하다.