java-spring mvc定义事务和切面并且织入

本文介绍如何使用Spring框架配置事务管理,包括添加必要的依赖项、在XML配置文件中设置事务管理器、定义事务通知及切面等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

作用:

    在业务逻辑需要同时完成两项或者以上的数据库操作时(如转账,一方收入,一方支出,需要同时完成,不然会数据不同步),需要用到事务功能

 

实现:

1)添加需要用到的jar包或者maven依赖(书写在pom.xml,其中jdbc为java数据库连接需要的jar,aspects为织入事务的jar):

	<dependency>
	    <groupId>org.springframework</groupId>
	    <artifactId>spring-jdbc</artifactId>
	    <version>5.0.7.RELEASE</version>
	</dependency>
	<dependency>
	    <groupId>org.springframework</groupId>
	    <artifactId>spring-aspects</artifactId>
	    <version>5.0.7.RELEASE</version>
	</dependency>

    


2)在指定的xml配置文件中配置:

     <!-- 事务管理器 -->
	<bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
		<property name="dataSource" ref="dataSource" />
	</bean>
	<!-- 事务通知 -->
	<tx:advice id="txAdvice" transaction-manager="txManager">
		<tx:attributes>
			<tx:method name="get*" read-only="true" />
			<tx:method name="*"/>
		</tx:attributes>
	</tx:advice>
	<!-- 定义事务切面,并织入事务通知 -->
	<aop:config>
		<!-- 定义事务切面 -->
		<aop:pointcut expression="execution(* com.accp.service..*(..))" id="servicePointcut"/>
		<!-- 织入事务通知 -->
		<aop:advisor pointcut-ref="servicePointcut" advice-ref="txAdvice"/>
	</aop:config>

    a)这行代码设置了名字符合get*的方法为只读,即只能进行查询方法

<tx:method name="get*" read-only="true" />

   

    b) 这行代码定义了事务切面为com.accp.service下所有包,即范围内的所有包遵循a处的规则

<aop:pointcut expression="execution(* com.accp.service..*(..))" id="servicePointcut"/>

 

   c) 这行代码将b处的切面执行织入,事务生效

   <aop:advisor pointcut-ref="servicePointcut" advice-ref="txAdvice"/>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值