首先再我们的ioc容器中配置事务管理器的bean对象
然后给事务管理器中注入数据源
然后配置事务通知,此时我们需要重新导入事务的约束,因为一开始我们没有导入aop和tx的约束
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop.xsd">
</beans>
配置事务通知的标签
<tx:advice id="" transaction-manager=""></tx:advice>
id属性标识给事务通知起一个唯一标准
transaction-manager属性用于给事务通知提供一个事务管理器引用
然后我们接着配置我们的通用切入点表达式
然后建立事务通知和切入点表达式的对应关系
然后我们需要配置事务的属性,我们在事务的通知的标签内部配置
我们使用<tx:method name=""/>
标签来配置事务的属性,该标签中包含的属性都有
1.name
:方法的名称
2. isolation
:指定事务的隔离级别,默认值式DEFAULT,表示使用数据库的默认隔离级别
3. no-rollback-for
:用于指定一个异常,当产生该异常时事务不会滚,产生其他异常时事务回滚,没有默认值。表示任何异常都回滚
4. propagation
:用于指定事务的传播行为。默认值式REQUIREO,表示一定会有事务,增删改的训责。查询方法可以选择SUPPORTS
5. read-only
:用于指定事务是否只读,默认值是falsue,表示读写
6. rollback-for
:用于指定一个异常,当产生该异常时事务回滚,产生其他异常时,事务不回滚。没有默认值。表示任何异常都回滚
7. timeout
:用于指定事务的超时时间,默认值为-1,表示永不超时,如果指定了数值,以秒为单位