spring中的事务管理(五)

spring中的事务管理(五)


事务的相关配置方法

 

1.Spring容器事务配置的步骤

常规配置步骤

1引入事务pom依赖信息

2在容器中配置DataSourceTransactionManager事务管理器

3 DataSourceTransactionManager事务管理器的方法用aop方式来管理业务层的提交和回滚

4 DataSourceTransactionManager是aop的通知

5 配置通知连接切点的切点表达式

 

AOP

1 切入点和切面(切入点是用来表示连接点点的表达式,切面是切入点的集合)

2 连接点(被代理方法)

3 通知(需要在代理类中对被代理方法进行的修改)

 

 

2.SpringMVC事务的配置

1.常规事务配置

在Spring中配置了事务,在SpringMVC控制层注入(@Controller)业务层(@Service)需要的接口,可以让DataSourceTransactionManager容器事务起作用,如果使用实现类,自动注入会报错,这是因为加入事务之后业务层实现被aop代理类代替了,生成的业务层的实现类是代理类的类型,此时用接口注入,aop代理类和被代理类实现同一个接口

 

2.其他情况下的事务:

(1)在一个项目中,在不使用Spring容器事务前提下,将业务层的bean放在mvc容器中和放在spring容器中都可以,并且用imp实现类注入,和用inf接口注入没有区别

 

(2)在一个项目中,在使用Spring容器事务前提下,如果将业务层的bean放在mvc容器中,可以实现类和接口的注入,但是事务不起作用,如果放在spring容器中,必须使用接口注入,事务才会起作用,这是因为Spring的容器事务管理业务层的事务,前提必须是在spring的容器内,如果业务层在mvc,mvc容器是私有容器(spring容器是公共容器),将会导致spring的容器事务管理器DataSourceTransactionManager无权代理mvc容器中的业务层的方法

 

(3)在一个项目中,在使用Spring容器事务前提下,如果将spring配置文件的全部配置信息都放到springmvc配置文件中,也就是说,将事务配置也放到springmvc容器中,也可以实现接口的注入,并且事务也可以起作用,但不建议这样做

 

(4)在一个项目中,在使用Spring容器事务前提下,如果将spring配置文件的全部配置信息都放到springmvc配置文件中,也就是说,将事务配置也放到springmvc容器中,让切入点表达式也包含控制层的方法,直接调用Mapper中的方法,也可以为控制层方法添加事务,但不建议这样做

 

(5)如果在web.xml中不配置<load-on-startup>1</load-on-startup>当使用是实现类注入时,启动项目时不会报错,但发送请求时会报错,因为配置之后,在项目启动时,mvc的servlet启动时就会创建,因此这种方式并不能解决实现类注入问题

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值