在未使用框架进行编程的时候,我们常常在web.xml中加上这样一段话 

  1. <listener>
  2. <listener-class>XXX</listener-class>
  3. </listener>

  在对应的类中实现ServletContextListener接口,这样在服务器已启动的时候,就会加载相应的程序

  但是现在在spring为我们提供了它特有的方法

  

在spring启动时自动调用一些db操作作缓存,于是在service实现ApplicationListener 接口。

并重写onApplicationEvent操作。这样就实现了要求,代码如下:

  1. @Service
  2. @Scope("singleton")
  3. public class MasterServiceImpl implements ApplicationListener {
  4. public void onApplicationEvent(ApplicationEvent arg0) {
  5. 一些DB操作
  6. }
  7. }
  1.  由于我们是spring托管事务,并且采用注入方式调用。

  这样的写法带来了一些问题,正常的action注入service调用的时候再事务范围内,出事务的时候会对DB连接进行释放,

  因为是这个service是系统启动直接调用的这些方法,不在事务管理范围内,于是这些DB的操作没有进行DB连接释放(关闭)。

  解决办法是,写一个专门的action实现ApplicationListener 接口,在这个action重新的onApplicationEvent方法内,

  调用该单例service,从而实现事务的入口登记,在出事务的时候就可以自动释放连接了。

Spring中实现监听的方法的更多相关文章

  1. spring中配置监听队列的MQ

    一.spring中配置监听队列的MQ相关信息注:${}是读取propertites文件的常量,这里忽略.绿色部分配置在接收和发送端都要配置.  <bean id="axx" ...

  2. Spring之事件监听(观察者模型)

    目录 Spring事件监听 一.事件监听案例 1.事件类 2.事件监听类 3.事件发布者 4.配置文件中注册 5.测试 二.Spring中事件监听分析 1. Spring中事件监听的结构 2. 核心角 ...

  3. Android 关于ListView中按钮监听的优化问题(方法二)

    关于ListView中按钮监听的优化问题(方法一)地址: http://www.cnblogs.com/steffen/p/3951901.html 之前的方法一,虽然能够解决position的传递, ...

  4. Android中添加监听回调接口的方法

    在Android中,我们经常会添加一些监听回调的接口供别的类来回调,比如自定义一个PopupWindow,需要让new这个PopupWindow的Activity来监听PopupWindow中的一些组 ...

  5. onscroll事件没有响应的原因以及vue.js中添加onscroll事件监听的方法

    1 onscroll事件失效 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> ...

  6. 利用spring的ApplicationListener监听某一类事件的发生

    1.ApplicationListener在使用过程中可以监听某一事件的发生,可以做出相应的处理,这个方式不常用,但是在特殊情况下面还是有用的. 2.导包pom.xml <project xml ...

  7. Spring的事件监听机制

    最近公司在重构广告系统,其中核心的打包功能由广告系统调用,即对apk打包的调用和打包完成之后的回调,需要提供相应的接口给广告系统.因此,为了将apk打包的核心流程和对接广告系统的业务解耦,利用了spr ...

  8. 十一、Spring之事件监听

    Spring之事件监听 ApplicationListener ApplicationListener是Spring事件机制的一部分,与抽象类ApplicationEvent类配合来完成Applica ...

  9. 新建Oracle数据库时,提示使用database control配置数据库时,要求在当前oracle主目录中配置监听程序

    新建一个oracle数据库时,当提示使用database control配置数据库时,要求在当前oracle主目录中配置监听程序等字样的时候,问题是那个监听的服务没有启动,解决方法如下: 打开cmd命 ...

随机推荐

  1. GOPS 2016全球运维大会 • 北京站概况

    GOPS 2016全球运维大会上海站已圆满落幕,错过上海站的朋友或许会感到一些遗憾,但是不用担心,在12月16日,GOPS 2016全球运维大会 • 北京站将隆重召开,错过上海在的朋友可以赶上北京站哦 ...

  2. 关于JavaScript的小笔记

    1.当 JavaScript 中的变量被声明的时候,程序内部会给它一个初始值 undefined.当你对一个值为 undefined 的变量进行运算操作的时候,算出来的结果将会是 NaN,NaN 的意 ...

  3. git 和 svn

    GIT和SVN之间的五个基本区别 如果你在读这篇文章,说明你跟大多数开发者一样对GIT感兴趣,如果你还没有机会来试一试GIT,我想现在你就要了解它了. GIT不仅仅是个版本控制系统,它也是个内容管理系 ...

  4. aforge之hough

    /// <summary> /// 参数不能是一位索引 /// </summary> /// <param name="bmp"></pa ...

  5. 网页 CSS样式表

    昨天,我主要是对CSS样式表进行了一下复习. CSS样式表主要有三类:内联样式表.内嵌样式表.外部样式表,我们平时一般使用第二种样式表. 选择器主要包括:标签选择器.class选择器.ID选择器.复合 ...

  6. bootstrop之模态框关闭

    1.js中操作$('#myModal5').map(function() {//用id选择器选中要关闭的模态框 $(this).modal('hide'); //关闭 }); 2.用button在模态 ...

  7. c#实现输出本月的月历

    效果如图: 代码如下: namespace WebForm { public partial class WebForm1 : System.Web.UI.Page { protected void ...

  8. shell编程之sed

    一.sed (Stream Editor) 1.定位行:sed -n '12,~3p' pass #从第12行开始,直到下一个3的倍数行(12-15行)sed -n '12,+4p' pass #从第 ...

  9. MAC图片格式转换

    OS X下有一个sips的程序可以用来处理图片. sips的名称功能非常强大,参考 帮助文档 . 这里我们只用到其中的一个功能,转换图片格式. 命令参考: sips  - s format jpeg  ...

  10. RecyclerView.Adapter

    RecyclerView无需多说,是用于替代ListView的新控件.它的适配器在于灵活. 现在有一个需求:需要RecyclerView的item支持点击事件,并且下拉到最后时,显示ProgressB ...