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.
展开
 我来答
lzgmusic
推荐于2016-01-03 · TA获得超过414个赞
知道小有建树答主
回答量:573
采纳率:66%
帮助的人:305万
展开全部
ApplicationContextAware

你可以实现这个接口,然后里面会有个方法,你定义一个属性,然后赋值给他就好了,类似这样:
ApplicationContext ctx;
public abstract void setApplicationContext(ApplicationContext applicationcontext)
throws BeansException{
this.ctx = applicationcontext;
}

然后你用 ctx.getBean("" ) 应该就能获取到了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
0613032107
2013-12-26 · TA获得超过347个赞
知道小有建树答主
回答量:216
采纳率:0%
帮助的人:211万
展开全部

使用附件中的文件直接就可以获取spring容器中的任何bean,用法如下:applicationContext.xml中添加配置

<bean class="com.util.SpringContextUtil"></bean>


已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式