Sring AOP(简记)

什么是AOP

  AOP(Aspect-OrientedProgramming,面向方面编程),可以说是OOP(Object-Oriented Programing,面向对象编程)的补充和完善。OOP允许你定义从上到下的关系,但并不适合定义从左到右的关系。

  实现AOP的技术,主要分为两大类:一是采用动态代理技术,利用截取消息的方式,对该消息进行装饰,以取代原有对象行为的执行;二是采用静态织入的方式,引入特定的语法创建“方面”,从而使得编译器可以在编译期间织入有关“方面”的代码。

使用场景

  Authentication 权限

  Caching 缓存

  Context passing 内容传递

  Error handling 错误处理

  Lazy loading 懒加载

  Debugging  调试

  logging, tracing, profiling and monitoring 记录跟踪 优化 校准

  Performance optimization 性能优化

  Persistence  持久化

  Resource pooling 资源池

  Synchronization 同步

  Transactions 事务

配置AOP(demo)

<bean id="transactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource1" />
</bean>

<tx:advice id="tx-advice" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="*" propagation="REQUIRED" rollback-for="java.lang.Exception" />
</tx:attributes>
</tx:advice>

 

<aop:config>
<aop:pointcut expression="execution(public * com.lizhiji.service.*.*(..))"
id="pointcut" />
<aop:advisor advice-ref="tx-advice" pointcut-ref="pointcut" />
</aop:config>

AOP代理对象生成

在Spring中,AOP代理可以是JDK动态代理或者CGLIB代理。

 

posted @ 2017-10-24 22:47  asdf2345  阅读(121)  评论(0编辑  收藏  举报