<!-- 配置事务管理,如果出现了脏数据等,可以回滚 --> <bean id="transactionManagerment" class="org.springframework.orm.hibernate3.HibernateTransactionManager"> <property name="sessionFactory"> <ref bean="sessionFactory" /> </property> </bean> <!-- 配置事务拦截, --> <bean id="transactionInterceptor" class="org.springframework.transaction.interceptor.TransactionInterceptor"> <property name="transactionManager" ref="transactionManagerment"></property> <property name="transactionAttributes"> <props> <!-- 类方法中名称匹配的,需要事务 --> <!-- PROPAGATION_REQUIRED,支持当前事务,如果没有当前事务,则新创建一个,是常用的方法 --> <prop key="save*">PROPAGATION_REQUIRED</prop> <prop key="update*">PROPAGATION_REQUIRED</prop> <prop key="delete*">PROPAGATION_REQUIRED</prop> <prop key="*">PROPAGATION_REQUIRED, readOnly</prop> </props> </property> </bean> <bean class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator"> <property name="beanNames"> <list> <value>*Services</value> <value>*Service</value> </list> </property> <property name="interceptorNames"> <list> <value>transactionInterceptor</value> </list> </property> </bean>
上面的beans是什么意思,我只是了解一些皮毛而已,想得到深刻一点的理解,特别是那个动态代理...
引用来自“小姚”的答案
首先明确什么是AOP
spring对事务的管理是基于aop的。
因为需要与数据联系起来,所以在事务管理器中注入(IOC)了sessionFactory。
<bean>是spring中的基本组件,可以理解为类的定义 或者说接口的定义。
拦截器其实就是AOP。
这里的拦截器是对方法进行拦截,beanNames定义了对哪些Bean定义的类或接口进行拦截 *是通配符 例如:UserServices 和 UserService 这样的(一般情况下,对业务层进行方法切面)
当然这里面使用的类都是spring提供的。
还有啥不清楚的?