[Spring Java JSP SSH ] 关于spring 的ApplicationContextAware借口Spring不能实例化
tony_jingzhou
2012-08-29
今天研究了一下spring 和hibernate集成,然后有个问题搞了我快一天了,目前木有搞出来。 这是实现了ApplicationContextAware的类
public class SpringInstance implements ApplicationContextAware { private static Logger log = LoggerFactory.getLogger(SpringInstance.class); /** 变量描述:Spring的应用上下文. */ private static ApplicationContext ctx; /** * 实现说明:设置Spring的应用上下文. <BR> * @param applicationContext:Spring的应用上下文 * @throws BeansException * @since */ public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { log.debug("--------------------------Spring注入"+applicationContext); SpringInstance.ctx = applicationContext; } /** * 方法功能:获得Spring的应用上下文. <BR> * 调用例子:ApplicationContext ac = GetSpringInstance.getCtx(); * @return Spring的上下文 * @since */ public static ApplicationContext getCtx() { log.debug("============="+ctx); log.info(" the spring resource factory ctx is :" +ctx.getId()); return ctx; } /** * 方法功能:获得spring工厂中的bean资源. <BR> * 调用例子:GetSpringInstance.getBean(beanid); * @param ctx:Spring的应用上下文 * @since */ public static Object getBean(String beanid) { log.info(" the spring resource factory ctx is :" +ctx.getId()); return ctx.getBean(beanid); } /** * 方法功能:获得spring工厂中的bean资源. <BR> * 调用例子:GetSpringInstance.getBean(beanid); * @param ctx:Spring的应用上下文 * @since */ public static void refreshCtx(){ if(ctx == null)((ConfigurableApplicationContext) ctx).refresh(); } } 然后我在Spring中配置了 <!--spring factory--> <bean id="springInstance" class="com.euc.common.module.base.transaction.SpringInstance"/>
但是,当服务器启动的时候,并没有打印出 log.debug("--------------------------Spring注入"+applicationContext); 的字样,不知道为什么,找了很久 |
|
tony_jingzhou
2012-08-29
OK,搞定了,是因为SpringInstance没有随spring初始化的原因。加上lazy-init="false" 就OK了
|