需要将事务管理和aop切入点结合起来一起用,切入点用于配置相应的需要加入事务的方法,事务配置里面可以对这些方法进行更加细粒度的划分
相关的配置如下
<!--配置PlatformTransactionManager-->
<bean class="org.springframework.jdbc.datasource.DataSourceTransactionManager" id="transactionalManager" >
    <property name="dataSource" ref="dataSource"></property>
</bean>
<!--配置事务的通知-->
<tx:advice id="txAdvice" transaction-manager="transactionalManager">
    <tx:attributes>
        <tx:method name="*" read-only="false" propagation="REQUIRED"/>
        <tx:method name="find*" read-only="true" propagation="SUPPORTS"></tx:method>
    </tx:attributes>
</tx:advice>
<!--将事务的通知与aop切入点结合-->
<aop:config>
    <aop:pointcut id="transactionpointcut" expression="execution(* com.kehao.service.*.*(..))"/>
    <aop:advisor advice-ref="txAdvice" pointcut-ref="transactionpointcut"></aop:advisor>
</aop:config>
<tx:advice>通知标签<tx:attributes>子标签
<tx:method>事务方法标签
<aop:config>标签
<aop:advisor>子标签
完整demo代码:https://github.com/chenkehao1998/JavaExampleForBlog/tree/main/kehao_spring_aop_transactional_xml
@EnableTransactionManagement注解,开启事务管理支持@Bean的函数用于返回PlatformTransactionManager对象    @Bean
    public DataSourceTransactionManager createDataSourceTransactionManager(DataSource dataSource){
        System.out.println("DataSourceTransactionManager");
        DataSourceTransactionManager manager = new DataSourceTransactionManager();
        manager.setDataSource(dataSource);
        return manager;
    }
@Transactional(这个函数必须是public的),也可以直接放在类上,表示类里所有的public函数都支持事务原文:https://www.cnblogs.com/kehao/p/14736671.html