当前位置:首页 > Java技术 > springmvc 整合 redisTemplate

springmvc 整合 redisTemplate

2022年08月05日 08:22:59Java技术4

spring整合jedis_旅之之的博客-CSDN博客

上一个版本只是整合了jedis,用起来不好。改成redisTemplate;

1.环境

spring版本4.1.5.RELEASE

jdk 1.6以上

2.pom.xml redis包引入

	<dependency>
			<groupId>org.springframework.data</groupId>
			<artifactId>spring-data-redis</artifactId>
			<version>1.5.0.RELEASE</version>
		</dependency>


		<dependency>
			<groupId>redis.clients</groupId>
			<artifactId>jedis</artifactId>
			<version>2.9.0</version>
		</dependency>

3.新增配置redis.properties。resources目录下

redis.host =127.0.0.1
redis.port =6379
redis.timeout=30000
redis.password =
redis.database = 0
redis.maxTotal=300

4.新增配置 spring-jedis.xml 。resources目录下;

<?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:context="http://www.springframework.org/schema/context"
	   xsi:schemaLocation="
		http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
		http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">


	<!-- 引入jedis的properties配置文件 -->
	<!--如果你有多个数据源需要通过<context:property-placeholder管理,且不愿意放在一个配置文件里,那么一定要加上ignore-unresolvable=“true"-->
	<context:property-placeholder location="classpath:redis.properties" ignore-unresolvable="true" />


	<!--Jedis连接池的相关配置-->
	<bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig">
		<!--新版是maxTotal,旧版是maxActive-->
		<property name="maxTotal">
			<value>${redis.maxTotal}</value>
		</property>
		<property name="maxIdle">
			<value>100</value>
		</property>
		<property name="minIdle" value="50"/>
		<property name="maxWaitMillis" value="1000"/>
		<property name="testOnBorrow" value="true"/>
		<property name="testOnReturn" value="true"/>
	</bean>

	<!-- jedisPool配置 ==>改成 redisTemplate统计管理redis  -->
<!--	<bean id="jedisPool" class="redis.clients.jedis.JedisPool">
		<constructor-arg name="poolConfig" ref="jedisPoolConfig" />
		<constructor-arg name="host" value="${redis.host}" />
		<constructor-arg name="port" value="${redis.port}" type="int" />
		<constructor-arg name="timeout" value="30000" type="int" />
		<constructor-arg name="password" value="#{'${redis.password}'!=''?'${redis.password}':null}" />
		<constructor-arg name="database" value="${redis.database}" type="int" />
	</bean>-->



	<!--配置JedisConnectionFactory-->
	<bean id="connectionFactory" class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory">
		<property name="poolConfig" ref="jedisPoolConfig"/>
	</bean>

	<bean id="stringRedisSerializer"
		  class="org.springframework.data.redis.serializer.StringRedisSerializer" />
<!--	<bean id="jackson2JsonRedisSerializer"
		  class="org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer" />-->
	<bean id="jdkSerializationRedisSerializer"
		  class="org.springframework.data.redis.serializer.JdkSerializationRedisSerializer" />

	<!-- Jedis ConnectionFactory 数据库连接配置-->
	<bean id="jedisConnectionFactory" class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory">
		<property name="hostName" value="${redis.host}" />
		<property name="port" value="${redis.port}" />
		<property name="password" value="#{'${redis.password}'!=''?'${redis.password}':null}" />
		<property name="database" value="${redis.database}" />
 		<property name="poolConfig" ref="jedisPoolConfig" />
	</bean>
	<!-- redisTemplate配置,redisTemplate是对Jedis的对redis操作的扩展,有更多的操作,封装使操作更便捷 -->

	<!-- redis操作模板 -->
	<bean id="redisTemplate" class="org.springframework.data.redis.core.RedisTemplate" >
		<property name="connectionFactory">
			<ref bean="jedisConnectionFactory"/>
		</property>
		<!-- 序列化配置 可以拿默认配置,不过存储起来序列化后的值不便用眼睛识别。-->
		<property name="keySerializer" ref="stringRedisSerializer" />
		<property name="valueSerializer" ref="stringRedisSerializer" />
		<property name="hashKeySerializer" ref="stringRedisSerializer" />
		<property name="hashValueSerializer" ref="stringRedisSerializer" />
	</bean>

	<!-- 该template只对字符串类型操作 -->
<!--	<bean id="stringRedisTemplate" class="org.springframework.data.redis.core.StringRedisTemplate" >-->
<!--		<property name="connectionFactory">-->
<!--			<ref bean="jedisConnectionFactory"/>-->
<!--		</property>-->
<!--	</bean>-->


</beans>

5.applicationContext.xml  引入配置  


	<!-- 引入jedis配置-->
	<import resource="spring-jedis.xml"/>

6.代码

创建redis工具类

@Component
public class RedisCache {

    //目前例子简单的操作String类型
    @Autowired
    public RedisTemplate<String, String> redisTemplate;
    //  StringRedisTemplate    可以用这个 需要xml配置

    /**
     * 设置过期时间,单位秒
     *
     * @param key   缓存的键值
     * @param value 缓存的值
     */
    public void setStr(final String key, final String value, int expireTime) {
        redisTemplate.opsForValue().set(key, value, expireTime, TimeUnit.SECONDS);
    }

    public String getStr(final String key){
       return  redisTemplate.opsForValue().get(key);
    }


    public void delete(final String key){
        redisTemplate.delete(key);
    }
}
//业务代码。
public class xxAction {

    @Autowired
    public RedisCache redisCache;


    public void test(){
      redisCache.setStr("key",  "value" , 10); //10秒过期时间 
      redisCache.getStr("key");//获取到值 "value"
      redisCache.delete("key");
     
    }    

}

作者:旅知知
来源链接:https://blog.csdn.net/qq_15421685/article/details/121593669

版权声明:
1、JavaClub(https://www.javaclub.cn)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。

2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。


本文链接:https://www.javaclub.cn/java/17519.html

标签: SpringMVC
分享给朋友:

“springmvc 整合 redisTemplate” 的相关文章

springmvc之pojo

标签: springmvc springmvc学习笔记12-springmvc注解开发之包装类型参数绑定 需求 实现方法 页面参数和controller方法形参定义 本文主要介绍注解开发的介绍包装类型的参数绑定 需求 商品查询controller方法中实现商品查询条...

SpringMVC配置没问题却却找不到页面,页面显示404

SpringMVC配置没问题却却找不到页面,页面显示404

在Artifacts下此工程下新建一个lib文件夹,存放jar包,因为idea新建modules的时候不是直接创建的web项目: 选中lib点加号把jar导入进去,然后重启tomcat 作者:春_ 来源链接:https://b...

SpringMvc两种实现

SpringMvc两种实现

SpringMvc搭建 了解mvc 什么是MVC MVC是模型(Model)、视图(View)、控制器(Controller)的简写,是一种软件设计规范。 是将业务逻辑、数据、显示分离的方法来组织代码。...

springmvc常见乱码处理

用三层架构做项目时,有时处理不当就经常是乱码问题,我也尝尝为此感到头疼,先说说我的方法,数据库建表用的字符编码方式最好和开发工具使用的字符编码保持一致,utf-8,utf-16等等。 1,响应头导致有乱码 一般都是在doget或者dopost方式中设置编码方式...

SpringMVC重定向

SpringMVC重定向

一、springMVC重定向有两种方式 @Controller @RequestMapping("/OA") public class RedirectService { @RequestMapping(value="/index") public String te...

spring mvc 请求转发和重定向

spring mvc controller间跳转 重定向 传参 url:http://zghbwjl.blog.163.com/blog/static/12033667220137795252845/ 1. 需求背景     需求:spr...

Spring MVC 3 深入总结

Spring MVC 3 深入总结

  一、前言: 大家好,Spring3 MVC是非常优秀的MVC框架,由其是在3.0版本发布后,现在有越来越多的团队选择了Spring3 MVC了。Spring3 MVC结构简单,应了那句话简单就是美,而且他强大不失灵活,性能也...

【SpringMVC】SpringMVC配置FastJson

【SpringMVC】SpringMVC配置FastJson

目前网络上传递数据大部分都是json和xml,但是xml使用的很少了,这里主要介绍json,一般来说json常用的场景是提供外部接口,请求内使用request域就足够了 springmvc对于json的支持,上图 1.请求json方式分析 如果...

SpringMVC的请求属于单例模式

首先明白:什么是单例,什么是多例。 单例:所有请求只生成一个对象。线程不安全 多例:每次请求都会重新生成一个对象,线程安全。 SpringMVC默认的是单例的,所以是线程不安全。 如果想要保证线程安全则有两种方式: 1、声明成多例:在Con...

springmvc如何引入css等资源

   配置文件: <mvc:resources location="/WEB-INF/css/" mapping="/css/**" />     <mvc:resources location="...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。