SPRING+HIBERNATE WebApplicationContext中获取不到BEAN
在一个CONTROLLER中,我有如下代码WebApplicationContextwebApplicationContext=(WebApplicationContex...
在一个CONTROLLER中,我有如下代码
WebApplicationContext webApplicationContext = (WebApplicationContext) request.getSession().getServletContext().getAttribute(WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE); System.out.println(webApplicationContext.getBeanDefinitionCount());
打印出来的数就一直是0,但是实际上 是有BEAN存在的,有XML配置的如dataSource,sessionFactory,也有通过注解方式配置的,如这个CONTROLLER,还有SERVICE DAO等。为什么我想手动获得SPRING中的BEAN就一直获得不了呢?
WebApplicationContextUtils.getWebApplicationContext(request.getSession().getServletContext())的方式获得WebApplicationContext也一样拿不到任何bean. 展开
WebApplicationContext webApplicationContext = (WebApplicationContext) request.getSession().getServletContext().getAttribute(WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE); System.out.println(webApplicationContext.getBeanDefinitionCount());
打印出来的数就一直是0,但是实际上 是有BEAN存在的,有XML配置的如dataSource,sessionFactory,也有通过注解方式配置的,如这个CONTROLLER,还有SERVICE DAO等。为什么我想手动获得SPRING中的BEAN就一直获得不了呢?
WebApplicationContextUtils.getWebApplicationContext(request.getSession().getServletContext())的方式获得WebApplicationContext也一样拿不到任何bean. 展开
2个回答
展开全部
ApplicationContextAware
你可以实现这个接口,然后里面会有个方法,你定义一个属性,然后赋值给他就好了,类似这样:
ApplicationContext ctx;
public abstract void setApplicationContext(ApplicationContext applicationcontext)
throws BeansException{
this.ctx = applicationcontext;
}
然后你用 ctx.getBean("" ) 应该就能获取到了
你可以实现这个接口,然后里面会有个方法,你定义一个属性,然后赋值给他就好了,类似这样:
ApplicationContext ctx;
public abstract void setApplicationContext(ApplicationContext applicationcontext)
throws BeansException{
this.ctx = applicationcontext;
}
然后你用 ctx.getBean("" ) 应该就能获取到了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询