项目中spring事务管理配置分析与修改方案

概要:

现有spring事务管理配置存在问题:对数据库无关的service层方法,也会进行事务管理(创建数据库链接、提交(回滚)事务、释放连接等),消耗资源。

修改方案:只对执行数据库写操作的service层方法进行事务管理,香港服务器,其它方法均不做配置。

需要做的工作:统计现有service层方法命名;修改事务管理配置文件;规范后续开发时的service层方法命名。

后续工作

配置如下:

日志输出:

1、com.sinosig.carpremium.services.impl.TokenServiceImpl.countToken

创建事务

2012-01-1711:46:39,656DEBUG[org.springframework.transaction.support.AbstractPlatformTransactionManager.getTransaction:371]-Creatingnewtransactionwithname[com.sinosig.carpremium.services.impl.TokenServiceImpl.countToken]:PROPAGATION_REQUIRED,ISOLATION_DEFAULT

建立链接

2012-01-1711:46:58,375DEBUG[org.springframework.jdbc.datasource.DataSourceTransactionManager.doBegin:202]-AcquiredConnection[jdbc:oracle:thin:@10.10.114.161:1521:ifpdb,UserName=AUTOCREAT,OracleJDBCdriver]forJDBCtransaction

2012-01-1711:46:58,468DEBUG[org.springframework.jdbc.datasource.DataSourceTransactionManager.doBegin:219]-SwitchingJDBCConnection[jdbc:oracle:thin:@10.10.114.161:1521:ifpdb,UserName=AUTOCREAT,OracleJDBCdriver]tomanualcommit

执行处理逻辑

2012-01-1711:46:58,468INFO[com.sinosig.carpremium.services.impl.TokenServiceImpl.countToken:44]-令牌基数是:100000,当前令牌值是:1

commit预处理

2012-01-1711:46:58,468DEBUG[org.springframework.transaction.support.AbstractPlatformTransactionManager.triggerBeforeCommit:903]-TriggeringbeforeCommitsynchronization

2012-01-1711:46:58,468DEBUG[org.springframework.transaction.support.AbstractPlatformTransactionManager.triggerBeforeCompletion:916]-TriggeringbeforeCompletionsynchronization

2012-01-1711:46:58,468DEBUG[org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit:730]-Initiatingtransactioncommit

提交事务

2012-01-1711:46:58,484DEBUG[org.springframework.jdbc.datasource.DataSourceTransactionManager.doCommit:259]-CommittingJDBCtransactiononConnection[jdbc:oracle:thin:@10.10.114.161:1521:ifpdb,UserName=AUTOCREAT,OracleJDBCdriver]

Commit后处理

2012-01-1711:46:58,484DEBUG[org.springframework.transaction.support.AbstractPlatformTransactionManager.triggerAfterCommit:929]-TriggeringafterCommitsynchronization

2012-01-1711:46:58,484DEBUG[org.springframework.transaction.support.AbstractPlatformTransactionManager.triggerAfterCompletion:945]-TriggeringafterCompletionsynchronization

释放数据库链接

2012-01-1711:46:58,484DEBUG[org.springframework.jdbc.datasource.DataSourceTransactionManager.doCleanupAfterCompletion:314]-ReleasingJDBCConnection[jdbc:oracle:thin:@10.10.114.161:1521:ifpdb,UserName=AUTOCREAT,OracleJDBCdriver]aftertransaction

创建事务

创建数据库链接

2012-01-1711:47:05,687DEBUG[org.springframework.jdbc.datasource.DataSourceTransactionManager.doBegin:202]-AcquiredConnection[jdbc:oracle:thin:@10.10.114.161:1521:ifpdb,UserName=AUTOCREAT,OracleJDBCdriver]forJDBCtransaction

2012-01-1711:47:05,687DEBUG[org.springframework.jdbc.datasource.DataSourceTransactionManager.doBegin:219]-SwitchingJDBCConnection[jdbc:oracle:thin:@10.10.114.161:1521:ifpdb,UserName=AUTOCREAT,OracleJDBCdriver]tomanualcommit

执行逻辑

2012-01-1711:47:05,765DEBUG[com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl.debug:27]-{conn-100000}Connection

到一个新的环境去欣赏去看去听,

项目中spring事务管理配置分析与修改方案

相关文章:

你感兴趣的文章:

标签云: