复制代码

为懒人提供无限可能,生命不息,code不止

人类感性的情绪,让我们知难行难
我思故我在
日拱一卒,功不唐捐
  • 首页
  • 前端
  • 后台
  • 数据库
  • 运维
  • 资源下载
  • 实用工具
  • 接口文档工具
  • 登录
  • 注册

spring

【原创】tx:annotation-driven和mvc:annotation-driven区别

作者: whooyun发表于: 2017-09-07 21:07

本次介绍下springmvc 中<tx:annotation-driven/>和<mvc:annotation-driven/>区别.
      为什么会介绍这俩个仅仅只是前缀不一样的配置,是因为项目搭建的时候,过于匆忙,没对配置文件进行检查,在applicationContext.xml中把tx顺手写成了mvc,导致db 事务一直无法被spring接管。
      <tx:annotation-driven/>,它用来做事务注解的,也就是@Transactional。为什么说它是用来对事务注解的,请看spring-tx-4.0.xsd这个文件的定义和描述,我这里就不多讲了。也许大家对前面的tx好奇,我整理下自己的理解和Google到的,先看前缀tx缩写,t=transaction这个大家知道,那x是什么?好吧,我也不知道,最后Google了下,各大网友的意思是x是从s音译,借用过来的。
难道这就是外国人的通假字。
      <mvc:annotation-driven/> 前缀大家都知道mvc分别带包model,view,controller,这个配置是用来对@Controller进行注解的。

顺便说下我的项目是mybatis-spring1.2.2+spring4.3.8整合

异常信息:

21:03:26.518 [http-nio-8080-exec-9] DEBUG org.mybatis.spring.SqlSessionUtils - Creating a new SqlSession
21:03:26.518 [http-nio-8080-exec-9] DEBUG org.mybatis.spring.SqlSessionUtils - SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@1872a7a3] was not registered for synchronization because synchronization is not active
21:03:26.518 [http-nio-8080-exec-9] DEBUG o.m.s.t.SpringManagedTransaction - JDBC Connection [com.alibaba.druid.proxy.jdbc.ConnectionProxyImpl@107a0177] will not be managed by Spring

在applicationContext.xml中把<mvc:annotation-driven/>改成<tx:annotation-driven/>后的日志

18:43:48.158 [main] DEBUG org.mybatis.spring.SqlSessionUtils - Creating a new SqlSession
18:43:48.162 [main] DEBUG org.mybatis.spring.SqlSessionUtils - Registering transaction synchronization for SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@43b9fd5]
18:43:48.167 [main] DEBUG o.m.s.t.SpringManagedTransaction - JDBC Connection [com.alibaba.druid.proxy.jdbc.ConnectionProxyImpl@7aaca91a] will be managed by Spring
18:43:48.170 [main] DEBUG c.f.c.d.T.saveTerminalUserCount - ==> Preparing: INSERT INTO terminal_user_count(terminal_user_id) VALUES (?);
18:43:48.193 [main] DEBUG c.f.c.d.T.saveTerminalUserCount - ==> Parameters: 123456(Integer)
18:43:48.200 [main] DEBUG c.f.c.d.T.saveTerminalUserCount - <== Updates: 1
18:43:48.200 [main] DEBUG org.mybatis.spring.SqlSessionUtils - Releasing transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@43b9fd5]
18:43:48.201 [main] DEBUG org.mybatis.spring.SqlSessionUtils - Transaction synchronization deregistering SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@43b9fd5]
18:43:48.201 [main] DEBUG org.mybatis.spring.SqlSessionUtils - Transaction synchronization closing SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@43b9fd5]