Listener中应用spring管理的Bean
在SSH项目开发中,会使用到监听器Listener,并且有时需要在监听器中完成数据库的操作等动作,此时需要在Listener中使用到Spring容器中的Bean。Spring容器本身就是在web.xml中使用listener的方式启动的。想在例如Listener中使用依赖注入的方式完成Bean实例的注入,不能完成。
一种解决方案:在Listener中通过new的方式得到Spring容器的实例。如下代码:
//通过new的方式得到Spring容器的实例 ApplicationContext context=new ClassPathXmlApplicationContext("applicationContext.xml");
结果是:可以取得Spring的容器,但是是重新生成了一个新的Spring的容器。SSH项目启动的时候已经自动生成了一个Spring的容器,这样就存在了两个Spring的容器。不可取。
最佳的解决方案是通过Spring提供的WebApplicationContextUtils 得到Spring容器的实例。代码如下:
/** * 通过WebApplicationContextUtils 得到Spring容器的实例。根据bean的名称返回bean的实例。 * @param servletContext :ServletContext上下文。 * @param beanName :要取得的Spring容器中Bean的名称。 * @return 返回Bean的实例。 */ private Object getBeanFromApplicationContext(ServletContext servletContext,String beanName){ //通过WebApplicationContextUtils 得到Spring容器的实例。 ApplicationContext application=WebApplicationContextUtils.getWebApplicationContext(servletContext); //返回Bean的实例。 return application.getBean(beanName); } }
转载于:https://www.cnblogs.com/sddlt/p/6943458.html
Listener中应用spring管理的Bean相关推荐
- 170630、springboot编程之普通类中调用spring管理的bean对象
我们知道如果我们要在一个类使用spring提供的bean对象,我们需要把这个类注入到spring容器中,交给spring容器进行管理,但是在实际当中,我们往往会碰到在一个普通的Java类中,想直接使用 ...
- 如何在线程中获取spring 管理的bean
问题说明 今天在web应用中用到了Java多线程的技术来并发处理一些业务,但在执行时一直会报NullPointerException的错误,问题定位了一下发现是线程中的Spring bean没有被注入 ...
- 【学习笔记】springBoot中获取sping管理的bean
文章目录 一.使用场景 二.springBoot中获取sping管理的bean 2.1 生成工具类SpringContextUtil 2.2 使用工具类SpringContextUtil 2.3 注意 ...
- 在普通java类里获取Spring管理的bean
转自:http://blog.csdn.net/a9529lty/article/details/42145545 如何取得Spring管理的bean (请用第3种方法): 1.servlet方式加 ...
- 怎么随时获取Spring的上下文ApplicaitonContext,和Spring管理的Bean
BeanFactory接口 Interface BeanFactory getBean <T> T getBean(String name,Class<T> requiredT ...
- (转)Spring管理的Bean的生命周期
http://blog.csdn.net/yerenyuan_pku/article/details/52834011 bean的初始化时机 前面讲解了Spring容器管理的bean的作用域.接着我们 ...
- (转)配置Spring管理的bean的作用域
http://blog.csdn.net/yerenyuan_pku/article/details/52833477 Spring管理的bean的作用域有: singleton 在每个Spring ...
- 【工具类】手动获取被spring管理的bean对象
package com.zxl;import org.springframework.beans.BeansException; import org.springframework.context. ...
- JPA EntityListeners中的Spring注入的Bean
在使用JPA侦听器进行数据库加密中,我讨论了使用JPA EntityListener进行透明加密. 从某种意义上说,这种方法是透明的,因为JPA实体(几乎)完全不知道正在加密,而JPA EntityL ...
- 在Servlet中获取Spring注解的bean
最近由于项目中出现了Servlet调用Spring的bean,由于整个项目中所有的bean均是注解方式完成,如@Service,@Repository,@Resource等,但是Spring的容器管理 ...
最新文章
- eclipse failed to load the jni jvm.dll
- 集存款(复利单利)贷款为一体的计算器(最新版)
- 【5min+】 巨大的争议?C# 8 中的接口
- python基本符合_python 3-3(2019-11-06 ) Python基础 (三)
- Javascript中的内置对象:RegExp对象
- [Linux] 动态库加载顺序
- 第四章:变量、作用域和内存问题
- 如何做好BI项目的规划与实施方案?
- 均匀试验设计表格的问题
- 邮件营销:邮件标题如何变得更有吸引力
- Java编程题:年会抽奖(错排问题)
- Latex排版论文——傻瓜式操作一晚排出毕业论文
- 帝国cms生成动态php栏目,帝国cms怎么实现页面自动生成html
- 微信小程序如何快速达到1000UV流量主开通要求
- java实现基于okhttp3的http请求封装(GET/POST/PUT/DELETE等方法)
- golang 同一个包下不同文件之间函数调用问题
- AIOps需要翻越的「三座大山」
- [思维模式-12]:《如何系统思考》-8- 工具篇 - 因果回路图/系统循环图/系统控制图,系统思考的关键工具
- 使用axios方式实现Ajax请求
- 应用在hiapk安卓市场分类排行榜中不显示的原因
热门文章
- 二级公共基础之——数据结构与算法
- photoshop cs3 无法复制文字的解决方案
- Android客户端和服务器端数据交互的第一种方法
- 简单搭建es6编译环境
- 去掉iPhone、iPad的默认按钮样式
- 解决Windows下Redis出现“MISCONF Redis is configured to save RDB snapshots”的错误
- 自己配置外接屏幕和驱动,最终通过hdmi连接
- 递归下降分析器 c++_专业围观质谱:汇总常见质谱仪专业对比分析!质量分析器直白解剖让你秒懂!...
- python如何导入类里_Python中如何导入类示例详解
- java编写的爬虫demo_我用Java写的第一个爬虫Demo-爬图片