(2) pointcut(切入点):本质上是一个捕获连接点的结构。在 AOP 中, 可以定义一个 point cut, 来捕获相关方法的调用。
(3) advice(通知):是 pointcut 的执行代码, 是执行“方面”的具体逻辑。
(4) aspect (方面):point cut 和 advice 结合起来就是 aspect, 它类似于 OOP 中定义的一个类, 但它代表的更多是对象间横向的关系。
(5) introduce(引入):为对象引入附加的方法或属性, 从而达到修改对象结构的目的。
开发Spring AOP Advice很方便。因为这些AOP Advice仅是POJO类,借助于Spring提供的ProxyFactoryBean,能够快速的搭建Spring AOP Advice。在Spring下使用Annotation配合AOP可以方便灵活地实现事务的处理。
4.3业务对象及其接口
在这里实现同样业务逻辑,此处的业务对象及其接口采用上述的代码,所以代码保持不变。
4.4 Spring中实现事务的Annotation配置
配置文件applicationContext.xml 中添加如下的配置,同时删除ProxyFactoryBean的配置标签: <tx:annotation-driven />
<aop:config>
<aop:advisor id="managerTx" advice-ref="txAdvice"
<!--此处配置一个AOP的切入点-->
pointcut="execution(*com.trx.db.bo.* Transaction*.*(..))" />
</aop:config>
<!--此处配置一个事务的通知-->
<tx:advice id="txAdvice">
<tx:attributes>
<tx:method name="get*" read-only="true" />
<tx:method name="*" />
</tx:attributes>
</tx:advice>
经过这样配置以后只要在bo包中新建拥有Transaction这样关键字的类,同时在applicationContext.xml中添加一个bean的配置就拥有了事务的特性,具体的测试不变。如果事务类放在不同的包下只要再添加一个切入点(pointcut="execution…")的配置即可,实现简单方便。
|