rss spring 接口_Spring的ApplicationListener 接口及事务管理

小鱼儿 2023-01-09 12:53 245阅读 0赞

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

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

@Service

@Scope(“singleton”)

public class MasterServiceImpl implements ApplicationListener {

public void onApplicationEvent(ApplicationEvent arg0) {

一些DB操作

}

}

由于我们是spring托管事务,并且采用注入方式调用。

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

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

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

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

发表评论

表情:
评论列表 (有 0 条评论,245人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Spring事务管理接口

    Spring 的事务管理是基于 AOP 实现的,而 AOP 是以方法为单位的。Spring 的事务属性分别为传播行为、隔离级别、只读和超时属性,这些属性提供了事务应用的方法和描

    相关 Spring事务控制相关应用程序接口

    备注:网上相关的转载文章实在是乱如麻,且大多都一模一样没什么新意,赘述不清的还是赘述不清,搞得人真就一头雾水。今天就当是在给自己做学习笔记的备份上传到网上吧,至少整理得自己比较