在Spring中使用事务管理时,配置了事务驱动各项属性,如图:
<!-- 定义事务通知 -->
<tx:advice id="PersonAdvice" transaction-manager="transactionManager">
<!-- 定义方法对应的事务属性 -->
<tx:attributes>
<tx:method name="insert*" propagation="REQUIRED"
isolation="READ_COMMITTED" read-only="false" timeout="-1"
rollback-for="Exception" />
<tx:method name="delete*" propagation="REQUIRED"
isolation="READ_COMMITTED" read-only="false" timeout="-1"
rollback-for="Exception" />
<tx:method name="update*" propagation="REQUIRED"
isolation="READ_COMMITTED" read-only="false" timeout="-1"
rollback-for="Exception" />
<tx:method name="select*" propagation="SUPPORTS" read-only="false" rollback-for="Exception" />
<tx:method name="*" propagation="REQUIRED" isolation="READ_COMMITTED"
read-only="false" timeout="-1" rollback-for="Exception" />
</tx:attributes>
</tx:advice>
但是,事物驱动的tx:advice报错:
以为没关系,运行项目,直接见红:
只截取了一部分,就是这个错,意思就是未引入tx标签定义。解决方案:ApplicationContext文件添加tx:advice声明,如图:
代码在此:
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
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-4.3.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.3.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-4.3.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-3.2.xsd">
加班太累了==晚安