AOP--面向方面编程
目的:更好的解耦合
技术: 动态代理, 反射, 工厂
应用:
两种:
a.spring+hibernate下的声明式的事务管理
配置文件中体现代理
aop配置
注解
b,通知(前置,后置,环绕通知。 )
spring+hibernate下的声明式的事务管理 采用的是环绕通知
管理事务:
htm 事务管理器(一个bean)(指定 事务的管理者--一个类)
<bean id="htm" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<!--事务管理器依赖 session工厂-->
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
事务通知(事务处理的规则)
<tx:advice id="txm" transaction-manager="htm">
<tx:attributes>
<tx:method name="*" propagation="REQUIRED"
rollback-for="java.lang.Exception"/>
</tx:attributes>
</tx:advice>
事务切点(事务作用的对象, 事务 关联 业务)
<aop:config>
<aop:advisor advice-ref="txm" pointcut="execution(* com.it.service.*.*(..))" />
<!--execution(* com.it.service.*.*(..))
指事务要包裹的对象:*号指src路径
com.it.serivce包下.*所有类
.*所有方法
(..)里面的所有属性 -->
</aop:config>