spring注解redis事务

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
	xmlns:context="http://www.springframework.org/schema/context"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
	http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd">
	<!-- Annotation配置 -->
	<context:annotation-config />
	<!-- 扫描包 -->
	<context:component-scan base-package="com.junziqian.dal.redis" />
	
	<bean id="databaseNamingStrategyRedis" class="com.junziqian.dal.DatabaseNamingStrategy">
		<property name="tablePrefix" value="themis_" />
		<property name="isAddUnderscores" value="${namingStrategy.isAddUnderscores}" />
		<property name="maxLength" value="${namingStrategy.maxLength}" />
	</bean>
	
	<!-- 
	   ============jedisConnectionFactory===========
	   p:hostName 主机ip地址
	   p:port 端口号
	   p:password 密码,redis只有密码
	   p:poolConfig 联接池配置
	   p:timeout 超时时间,这个最好设置大点,初始时一般会超过2秒
	   p:use-pool 是否使用联接池
	 -->
	<bean id="jedisConnectionFactory"
		class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory"
		p:hostName="${redis.host}"
		p:port="${redis.port}"
		p:password="${redis.password}"
		p:poolConfig-ref="jredisPoolConfig"
		p:timeout="20000"
		p:use-pool="true"/>
	<!-- 
	  =============jredisPoolConfig配置说明============
	  blockWhenExhausted 连接耗尽时是否阻塞, false报异常,ture阻塞直到超时, 默认true
	  evictionPolicyClassName 设置的逐出策略类名, 默认DefaultEvictionPolicy(当连接超过最大空闲时间,或连接数超过最大空闲连接数)
	  //p:fairness="true"
	  jmxEnabled 是否启用pool的jmx管理功能, 默认true
	  jmxNameBase
	  jmxNamePrefix
	  lifo 是否启用后进先出, 默认true
	  maxIdle 最大空闲数  默认8个
	  maxTotal 最大链接总数    默认8个
	  maxWaitMillis 获取连接时的最大等待毫秒数,默认-1不确定时间
	  minEvictableIdleTimeMillis 最大空闲逐出时间
	  minIdle 最小空闲连接数, 默认0
	  numTestsPerEvictionRun每次逐出检查时 逐出的最大数目 如果为负数就是 : 1/abs(n), 默认3
	  softMinEvictableIdleTimeMillis对象空闲多久后逐出, 当空闲时间>该值 且 空闲连接>最大空闲数 时直接逐出,不再根据MinEvictableIdleTimeMillis判断  (默认逐出策略)
	  testOnBorrow 在获取连接的时候检查有效性, 默认false
	  testWhileIdle  
	  testOnReturn
	 -->
	<bean id="jredisPoolConfig" class="redis.clients.jedis.JedisPoolConfig"
	 p:blockWhenExhausted="true"
	 p:evictionPolicyClassName="org.apache.commons.pool2.impl.DefaultEvictionPolicy"
	 p:jmxEnabled="true"
	 p:lifo="true"
	 p:maxIdle="20"
	 p:maxTotal="20"
	 p:maxWaitMillis="5000"
	 p:minEvictableIdleTimeMillis="1800000"
	 p:minIdle="5"
	 p:numTestsPerEvictionRun="3"
	 p:softMinEvictableIdleTimeMillis="1800000"
	 p:testOnBorrow="true"
	 p:testWhileIdle="true"
	 p:testOnReturn="true"
	/>
	<bean id="stringRedisTemplate" class="org.springframework.data.redis.core.StringRedisTemplate"
		p:connection-factory-ref="jedisConnectionFactory" p:enableTransactionSupport="true"/>
</beans>

主要就是这句p:enableTransactionSupport="true" 一句话,就可以使用以下注解了:

@Transactional(rollbackFor = Exception.class,propagation=Propagation.REQUIRES_NEW)

 

转载于:https://my.oschina.net/yifanxiang/blog/753206

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值