少年阿賓

          那些青春的歲月

            BlogJava :: 首頁(yè) :: 聯(lián)系 :: 聚合  :: 管理
            500 Posts :: 0 Stories :: 135 Comments :: 0 Trackbacks
          spring-data-redis下載地址:
          http://www.springsource.org/download/community?project=Spring%2520Data%2520Redis&version=1.0.1.RELEASE


          //spring-redis.xml
          <?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:aop="http://www.springframework.org/schema/aop"
          xmlns:cache="http://www.springframework.org/schema/cache"
          xmlns:context="http://www.springframework.org/schema/context"
          xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:oxm="http://www.springframework.org/schema/oxm"
          xmlns:p="http://www.springframework.org/schema/p" xmlns:util="http://www.springframework.org/schema/util"
          xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd  
          http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.1.xsd  
              http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd  
              http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd
              http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.1.xsd">
          <context:annotation-config />
          <context:component-scan base-package="com.abin.lee.spring.redis"></context:component-scan>
          <context:property-placeholder location="classpath:com/abin/lee/spring/redis/redis.properties" />
          <!-- 對(duì)象池配置: -->
          <bean
          id="jedisPoolConfig"
          class="redis.clients.jedis.JedisPoolConfig">
          <property
          name="maxActive"
          value="${redis.pool.maxActive}" />
          <property
          name="maxIdle"
          value="${redis.pool.maxIdle}" />
          <property
          name="maxWait"
          value="${redis.pool.maxWait}" />
          <property
          name="testOnBorrow"
          value="${redis.pool.testOnBorrow}" />
          </bean>
          <!-- 工廠實(shí)現(xiàn): -->
          <bean
          id="jedisConnectionFactory"
          class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory">
          <property
          name="hostName"
          value="${redis.ip}" />
          <property
          name="port"
          value="${redis.port}" />
          <property
          name="poolConfig"
          ref="jedisPoolConfig" />
          </bean>
          <!--模板類: -->
          <bean
          class="org.springframework.data.redis.core.RedisTemplate"
          p:connection-factory-ref="jedisConnectionFactory" />
          </beans>






          //User.java
          package com.abin.lee.spring.redis.pojo;
          import java.io.Serializable;
          public class User implements Serializable {
          /**
          */
          private static final long serialVersionUID = 2668307865623183776L;
          private String uid;
          private String address;
          public User() {
          super();
          }
          public User(String uid, String address) {
          super();
          this.uid = uid;
          this.address = address;
          }
          public String getUid() {
          return uid;
          }
          public void setUid(String uid) {
          this.uid = uid;
          }
          public String getAddress() {
          return address;
          }
          public void setAddress(String address) {
          this.address = address;
          }
          @Override
          public String toString() {
          return "User [uid=" + uid + ", address=" + address + "]";
          }
          @Override
          public int hashCode() {
          final int prime = 31;
          int result = 1;
          result = prime * result + ((address == null) ? 0 : address.hashCode());
          result = prime * result + ((uid == null) ? 0 : uid.hashCode());
          return result;
          }
          @Override
          public boolean equals(Object obj) {
          if (this == obj)
          return true;
          if (obj == null)
          return false;
          if (getClass() != obj.getClass())
          return false;
          User other = (User) obj;
          if (address == null) {
          if (other.address != null)
          return false;
          } else if (!address.equals(other.address))
          return false;
          if (uid == null) {
          if (other.uid != null)
          return false;
          } else if (!uid.equals(other.uid))
          return false;
          return true;
          }
          }






          //UserDao.java
          package com.abin.lee.spring.redis.dao;
          import com.abin.lee.spring.redis.pojo.User;
          public interface UserDao {
          /**
          * @param uid
          * @param address
          */
          void save(User user);
          /**
          * @param uid
          * @return
          */
          User read(String uid);
          /**
          * @param uid
          */
          void delete(String uid);
          }





          //UserDaoImpl.java
          package com.abin.lee.spring.redis.dao.impl;
          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.stereotype.Repository;
          import com.abin.lee.spring.redis.dao.UserDao;
          import com.abin.lee.spring.redis.pojo.User;
          @Repository("userDao")
          public class UserDaoImpl implements UserDao{
          @Autowired
          private RedisTemplate<Serializable, Serializable> redisTemplate;
          @Override
          public void save(final User user) {
          redisTemplate.execute(new RedisCallback<Object>() {
          @Override
          public Object doInRedis(RedisConnection connection)
          throws DataAccessException {
          connection.set(
          redisTemplate.getStringSerializer().serialize(
          "user.uid." + user.getUid()),
          redisTemplate.getStringSerializer().serialize(
          user.getAddress()));
          return null;
          }
          });
          }
          @Override
          public User read(final String uid) {
          return redisTemplate.execute(new RedisCallback<User>() {
          @Override
          public User doInRedis(RedisConnection connection)
          throws DataAccessException {
          byte[] key = redisTemplate.getStringSerializer().serialize(
          "user.uid." + uid);
          if (connection.exists(key)) {
          byte[] value = connection.get(key);
          String address = redisTemplate.getStringSerializer()
          .deserialize(value);
          User user = new User();
          user.setAddress(address);
          user.setUid(uid);
          return user;
          }
          return null;
          }
          });
          }
          @Override
          public void delete(final String uid) {
          redisTemplate.execute(new RedisCallback<Object>() {
          public Object doInRedis(RedisConnection connection) {
          connection.del(redisTemplate.getStringSerializer().serialize(
          "user.uid." + uid));
          return null;
          }
          });
          }
          }


          //UserDaoTest.java
          package com.abin.lee.spring.redis.dao.test;
          import static org.junit.Assert.assertEquals;
          import static org.junit.Assert.assertNull;
          import org.junit.Before;
          import org.junit.Test;
          import org.springframework.context.ApplicationContext;
          import org.springframework.context.support.ClassPathXmlApplicationContext;
          import com.abin.lee.spring.redis.dao.UserDao;
          import com.abin.lee.spring.redis.pojo.User;
          public class UserDaoTest {
          private ApplicationContext app;
          private UserDao userDao;
          @Before
          public void before() throws Exception {
          app = new ClassPathXmlApplicationContext("com/abin/lee/spring/redis/spring-redis.xml");
          userDao = (UserDao) app.getBean("userDao");
          }
          @Test
          public void crud() {
          // -------------- Create ---------------
          String uid = "u123456";
          String address1 = "上海";
          User user = new User();
          user.setAddress(address1);
          user.setUid(uid);
          userDao.save(user);
          // ---------------Read ---------------
          user = userDao.read(uid);
          System.out.println("address1="+user.getAddress());
          assertEquals(address1, user.getAddress());
          // --------------Update ------------
          String address2 = "北京";
          user.setAddress(address2);
          userDao.save(user);
          user = userDao.read(uid);
          System.out.println("address2Save="+user.getAddress());
          assertEquals(address2, user.getAddress());
          // --------------Delete ------------
          userDao.delete(uid);
          user = userDao.read(uid);
          System.out.println("addressdel="+user.getAddress());
          assertNull(user);
          }
          }





          posted on 2012-11-14 23:17 abin 閱讀(13184) 評(píng)論(2)  編輯  收藏 所屬分類: Redis

          Feedback

          # re: spring redis整合(一)[未登錄] 2013-08-17 11:40 redis
          你好!

          謝謝你的博文

          想請(qǐng)教您一個(gè)問題

          為什么在WEB下 這個(gè)會(huì)有問題呢  回復(fù)  更多評(píng)論
            

          # re: spring redis整合(一) 2015-07-02 17:41 zuidaima
          springdata demo教程源代碼下載 :http://zuidaima.com/share/kspringdata-p1-s1.htm  回復(fù)  更多評(píng)論
            


          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 巧家县| 孙吴县| 禹州市| 洪洞县| 衢州市| 资中县| 萝北县| 潞城市| 林周县| 策勒县| 云梦县| 丹江口市| 桐城市| 开封县| 雷山县| 香格里拉县| 广灵县| 合作市| 麻江县| 吴旗县| 平南县| 肥东县| 阿瓦提县| 报价| 玛多县| 洪湖市| 河间市| 轮台县| 廉江市| 裕民县| 湖口县| 梁河县| 横峰县| 宜川县| 松原市| 抚松县| 金门县| 庆云县| 盈江县| 略阳县| 吴堡县|