springboot redis开启事务

步骤

1. 开启数据库事务

<bean id="dataSource" class="com.zaxxer.hikari.HikariDataSource" destroy-method="shutdown">
		<property name="driverClassName" value="${jdbc.driverClassName}" />
		<property name="jdbcUrl" value="${jdbc.url}" />
		<property name="username" value="${jdbc.username}" />
		<property name="password" value="${jdbc.password}" />
		<!-- 等待连接池分配连接的最大时长(毫秒),超过这个时长还没可用的连接则发生SQLException, 缺省:30秒 -->
		<property name="connectionTimeout" value="10000" />
		<!-- 一个连接idle状态的最大时长(毫秒),超时则被释放(retired),缺省:10分钟 -->
		<property name="idleTimeout" value="600000" />
		<!-- 一个连接的生命时长(毫秒),超时而且没被使用则被释放(retired),缺省:30分钟,建议设置比数据库超时时长少30秒,参考MySQL wait_timeout参数(show variables like '%timeout%';) -->
		<property name="maxLifetime" value="60000" />
		<!-- 连接池中允许的最大连接数。缺省值:10;推荐的公式: -->
		<property name="maximumPoolSize" value="10" />
		<property name="dataSourceProperties">
			<props>
				<prop key="cachePrepStmts">true</prop>
				<prop key="prepStmtCacheSize">250</prop>
				<prop key="prepStmtCacheSqlLimit">2048</prop>
				<prop key="useServerPrepStmts">true</prop>
			</props>
		</property>
	</bean>

	<bean id="transactionManager"
		class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
		<property name="dataSource" ref="dataSource" />
	</bean>
	<tx:advice id="txAdvice"
		transaction-manager="transactionManager"><!-- transactionManager -->
		<tx:attributes>
			<!-- 指定相关方法才开启事务 -->
			<tx:method name="save*" />
			<tx:method name="update*" />
			<tx:method name="delete*" />
		</tx:attributes>
	</tx:advice>
	<!-- 切入点指明在所有方法产生事务时的拦截操作,这里只拦截业务逻辑层 -->
	<aop:config>
		<aop:pointcut id="serviceMethods"
			expression="execution(* *..service*..*(..))" />
		<aop:advisor advice-ref="txAdvice"
			pointcut-ref="serviceMethods" order="0" />
	</aop:config>

2 redisTemplate开启事务支持

RedisTemplate<String, String> template = new RedisTemplate<>();
template.setConnectionFactory(factory);
template.setValueSerializer(createJackson2JsonRedisSerializer());
template.setEnableTransactionSupport(true);

redis事务生效

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值