public class LogHandler { //切入点执行之前需要执行的方法 public void LogBefore(){ System.out.println("转账开始时间:" + System.currentTimeMillis()); } //切入点执行结束执行该方法 public void LogAfter(){ System.out.println("转账结束时间:" + System.currentTimeMillis()); } }
当然啦,还需要在XML配置文件中增加配置信息:
<!-- 配置日志打印类 --> <bean id="logHandler" class="com.jdbc.LogHandler"/> <aop:config> <!-- order属性表示横切关注点的顺序,当有多个时,序号依次增加 --> <aop:aspect id="log" ref="logHandler" order="1"> <!-- 切入点为AccountServiceImpl类下的transfer方法 --> <aop:pointcut id="logTime" expression="execution(* com.jdbc.AccountServiceImpl.transfer(..))"/> <aop:before method="LogBefore" pointcut-ref="logTime"/> <aop:after method="LogAfter" pointcut-ref="logTime"/> </aop:aspect> </aop:config>
然后将AccountServiceImpl类中transfer方法中异常语句(int i = 1 / 0)注释掉,将Client类中的创建表、添加表项的代码也注释掉,再次执行主函数,则显示日志输出,查看转账前后数据库表状态。表如下:
如上就是对Spring AOP事务管理一个简单的介绍,希望能对读者产生一点帮助。