0

我可以在我的服务 PersonServiceBean 和配置 transactionManager 顶部使用注释 @Transactional,如下所示。之后,我的服务就可以通过AOP在事务控制下执行db操作了。

 <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
          .........
 </bean>
 <tx:annotation-driven transaction-manager="txManager"/>
 <bean id="personService" class="cn.itcast.service.impl.PersonServiceBean">
    <property name="dataSource" ref="dataSource"/>
 </bean>

在此处输入图像描述 但我没有将 aspectj.jar 包含到我的项目中。它是如何工作的?听说spring是通过aspectj实现AOP的。

4

1 回答 1

3

它默认不使用 AspectJ,而是使用代理(JDK 接口代理或 CGLIB 代理)。因此,当您将事务 bean 注入另一个 bean 时,您注入的实际上是实际 bean 实例的代理,它拦截方法调用并启动/提交/回滚事务。

当然,更多在文档中。

于 2013-08-20T14:37:15.543 回答