2 spring整合redis、

来源:互联网 发布:淘宝买家注册 编辑:程序博客网 时间:2024/05/17 11:58

一:配置依赖的jar

==

                <dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId><version>2.8.2</version></dependency><dependency><groupId>org.springframework.data</groupId><artifactId>spring-data-redis</artifactId><version>1.7.2.RELEASE</version></dependency>


==


二:设置redis.xml

<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"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"><!-- 这里高低版本有所不同 --><bean id="poolConfig" class="redis.clients.jedis.JedisPoolConfig"><property name="maxTotal" value="5" /><property name="maxIdle" value="5" /><property name="minIdle" value="0" /> <property name="testOnBorrow" value="true" />  </bean><!-- 设置JedisCOnnetionFactory --><bean id="jedisFactory"class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory"p:host-name="192.168.40.129" p:port="6379" p:password="123456"p:pool-config-ref="poolConfig" /><!-- 设置我在代码中会用到的redisTempleat --><bean id="redisTemplate" class="org.springframework.data.redis.core.RedisTemplate"><property name="connectionFactory" ref="jedisFactory" /></bean></beans>


==

三:编写代码:

==

package com.we.service;import java.io.Serializable;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.dao.DataAccessException;import org.springframework.data.redis.connection.RedisConnection;import org.springframework.data.redis.core.RedisCallback;import org.springframework.data.redis.core.RedisTemplate;import org.springframework.data.redis.serializer.RedisSerializer;@SuppressWarnings("unchecked")@org.springframework.stereotype.Servicepublic class RedisServiceImpl implements RedisService {@Autowiredprivate RedisTemplate<Serializable, Serializable> redisTemplate;@Overridepublic boolean insert(final Object key, final Object value) {return redisTemplate.execute(new RedisCallback<Boolean>() {@Overridepublic Boolean doInRedis(RedisConnection connection)throws DataAccessException {RedisSerializer<Object> ks = (RedisSerializer<Object>) redisTemplate.getKeySerializer();RedisSerializer<Object> vs = (RedisSerializer<Object>) redisTemplate.getValueSerializer();return connection.setNX(ks.serialize(key), vs.serialize(value));}});}@Overridepublic Object get(final Object key) {return redisTemplate.execute(new RedisCallback<Object>() {@Overridepublic Object doInRedis(RedisConnection connection)throws DataAccessException {RedisSerializer<Object> ks = (RedisSerializer<Object>) redisTemplate.getKeySerializer();return redisTemplate.getValueSerializer().deserialize(connection.get(ks.serialize(key)));}});}}


==

四测试

==

public class RedisTest {public static void main(String[] args) {ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");RedisService o = (RedisService) ctx.getBean("redisServiceImpl");boolean b = o.insert("name1", "zhangsan");System.out.println(b);String name = (String) o.get("name1");System.out.println(name);Person person = new Person();person.setName("new Person");boolean ip = o.insert("person", person);System.out.println("插入person " + ip);Person getPerson = (Person) o.get("person");System.out.println(getPerson.getName());}}


==


0 0
原创粉丝点击