使用aop进行事务与日志管理
程序员文章站
2022-04-25 19:33:35
...
aop有关事务与日志管理
1. 添加约束
在spring配置文件中加入有关的事务与aop头部约束
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:aop="http://www.springframework.org/schema/aop"
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
2. 事务管理
2.1 事务管理bean
<!--添加事务管理bean,注入定义的数据源datasource-->
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource" />
</bean>
2.2 配置事务通知
<!--配置事务通知-->
<tx:advice id="txAdvice" transaction-manager="transactionManager">
<tx:attributes>
<!--为对应的方法配置需要的传播特性与隔离级别-->
<tx:method name="add*" propagation="REQUIRED" isolation="DEFAULT"/>
<tx:method name="delete*" propagation="REQUIRED"/>
<tx:method name="update*" propagation="REQUIRED"/>
<tx:method name="get*" read-only="true"/>
<tx:method name="*" propagation="REQUIRED"/>
</tx:attributes>
</tx:advice>
2.3 使用aop进行事务织入
<aop:config>
<!--定义aop切入点-->
<aop:pointcut id="txPointcut" expression="execution(public * gsly.fun.dao.*.* (..))"/>
<!--事务管理通知-->
<aop:advisor advice-ref="txAdvice" pointcut-ref="txPointcut"/>
</aop:config>
之后再匹配的方法执行时,就会进行事务的管理
3. 日志管理
3.1 编写日志扩展类
public class MyLogger {
public void before(){
System.out.println("方法执行前---------------------------------->");
}
}
3.2 注入MyLogger
<!--注入日志输出类-->
<bean id="myLogger" class="gsly.fun.config.MyLogger"/>
3.3 使用aop进行日志织入
<!--配置aop织入事务-->
<aop:config>
<!--切入点-->
<aop:pointcut id="txPointcut" expression="execution(* gsly.fun.dao.*.* (..))"/>
<!--切面类-->
<aop:aspect ref="myLogger">
<aop:before method="before" pointcut-ref="txPointcut"/>
</aop:aspect>
</aop:config>
上一篇: spring中xml配置文件的相关内容
下一篇: fetch异常状态处理
推荐阅读
-
Spring Boot 入门(五):集成 AOP 进行日志管理
-
Java使用JDK与Cglib动态代理技术统一管理日志记录
-
关于spring 事务 和 AOP 管理事务和打印日志问题
-
如何使用Tkinter进行窗口的管理与设置
-
在springboot中使用AOP进行全局日志记录
-
Spring Boot 入门(五):集成 AOP 进行日志管理
-
spring,mybatis事务管理配置与@Transactional注解使用
-
spring,mybatis事务管理配置与@Transactional注解使用
-
Java使用JDK与Cglib动态代理技术统一管理日志记录
-
如何进行简单的LVM的管理与ssm工具的使用?