spring--spring集成redis

###0.安裝配置redis
安裝配置redis請參照個人博客http://my.oschina.net/u/2312022/blog/637288
###1.添加jar包
在pom.xml中添加java

<!-- redis -->
	<dependency>
		<groupId>redis.clients</groupId>
		<artifactId>jedis</artifactId>
		<version>2.8.1</version>
	</dependency>
	<dependency>
    	<groupId>org.springframework.data</groupId>
    	<artifactId>spring-data-redis</artifactId>
    	<version>1.7.1.RELEASE</version>
	</dependency>

###2.建立spring-redis.xml文件android

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

	<context:component-scan base-package="com.readygo.pet.redis" annotation-config="true"></context:component-scan>
 	<!--  <context:property-placeholder location="classpath:redis.properties"/> -->
	<bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig">
		<property name="maxIdle" value="10"></property>
		<property name="maxWaitMillis" value="20000"></property>
	</bean>
	<bean id="jedisConnectionFactory" class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory">
		<property name="hostName" value="127.0.0.1"></property>
		<property name="port" value="6379"></property>
		<property name="password" value=""></property>
		<property name="poolConfig" ref="jedisPoolConfig"></property>
	</bean>
	
	<bean id="redisTemplate" class="org.springframework.data.redis.core.RedisTemplate">
		<property name="connectionFactory" ref="jedisConnectionFactory"></property>
		<!-- 序列化方式 -->
		<property name="keySerializer" >
			<bean class="org.springframework.data.redis.serializer.StringRedisSerializer"></bean>
		</property>
		<property name="hashKeySerializer">
			<bean class="org.springframework.data.redis.serializer.StringRedisSerializer"></bean>
		</property>
		<property name="valueSerializer">
			<bean class="org.springframework.data.redis.serializer.JdkSerializationRedisSerializer"></bean>
		</property>
		<property name="hashValueSerializer">
			<bean class="org.springframework.data.redis.serializer.JdkSerializationRedisSerializer"></bean>
		</property>
	</bean>
	
	<!-- 對String的操做進行封裝 -->
	<bean id="stringRedisTemplate" class="org.springframework.data.redis.core.StringRedisTemplate">
		<property name="connectionFactory" ref="jedisConnectionFactory"></property>
	</bean>
	
</beans>

###3.將spring-redis.xml放入IOC中,即啓動工程須要加載該文件web

<import resource="spring-mvc.xml" />
	<import resource="spring-mybatis.xml" />
	<import resource="spring-redis.xml"/>
<servlet>
		<servlet-name>pets</servlet-name>
		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
		<init-param>
			<param-name>contextConfigLocation</param-name>
			<param-value>classpath:applicationContext.xml</param-value>
		</init-param>
		<load-on-startup>1</load-on-startup>
	</servlet>

	<servlet-mapping>
		<servlet-name>pets</servlet-name>
		<url-pattern>/*</url-pattern>
	</servlet-mapping>

###4.建包,建立源文件
SysInfo類redis

package com.readygo.pet.redis;

import java.io.Serializable;

public class SysInfo implements Serializable {
	
	private static final long serialVersionUID = 1L;
	
    private String appName;
    private String appStoreId;
    private String appIosId;
    private String appIosVersion;
    private String appIosUpdFlag;
    private String appAndroidVersion;
    private String appAndroidUpdFlag;
    private String androidDownloadUrl;
    private String userProtocolUrl;
    private String dataServerUrl;
    private String resourceServerUrl;
    private String webpageServerUrl;
    private String splashImgUrl;
    private String aboutContent;
    private String appImg;
    private String companyTelephone;
    private String companyWebsite;
    private String updTime;
    private Integer updUid;
    private String updPid;
    private String addTime;
    private Integer addUid;
    private String addPid;
}

SysInfoDao類spring

package com.readygo.pet.redis;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisOperations;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.core.ValueOperations;
import org.springframework.stereotype.Repository;

@Repository
public class SysInfoDao {
	
	@Autowired
	private RedisTemplate<String, SysInfo> redisTemplate;
	
	public boolean save(SysInfo sysInfo) {
		ValueOperations<String, SysInfo> valueOperations = redisTemplate.opsForValue();
		//valueOperations.set(order.getId(), order);
		boolean cc = valueOperations.setIfAbsent(sysInfo.getAppName(), sysInfo);
		return cc;
	}
	
	public SysInfo read(String name) {
		ValueOperations<String, SysInfo> valueOperations = redisTemplate.opsForValue();
		SysInfo order = valueOperations.get(name);
		return order;
	}
	
	public void delete(String name) {
		ValueOperations<String, SysInfo> valueOperations = redisTemplate.opsForValue();
		RedisOperations<String, SysInfo> redisOperations = valueOperations.getOperations();
		redisOperations.delete(name);
	}
}

###5.應用redisspring-mvc

@Service
public class SysInfoServiceImpl implements SysInfoService{

	@Autowired
	private SysInfoMapper sysInfoMapper;
	
	@Autowired
	SysInfoDao sysInfoDao;
	
	/**
	 * 獲取系統信息
	 * @param	request
	 * 			系統數據信息
	 * 
	 * @return	系統信息
	 */
	public SysInfoRel getSysInfo() throws Exception{
		
		SysInfoRel sysInfo = new SysInfoRel();
		SysInfo sysInfoRedis = sysInfoDao.read("家有寵物");
		if (sysInfoRedis == null) {
			sysInfo = sysInfoMapper.selectByPrimaryKey();
			SysInfo sysInfoRedis2 = new SysInfo();
			sysInfoRedis2.setAppName(sysInfo.getAppName());			
			sysInfoRedis2.setAppStoreId(sysInfo.getAppStoreId());
			sysInfoRedis2.setAppIosId(sysInfo.getAppIosId());
			sysInfoRedis2.setAppIosVersion(sysInfo.getAppIosVersion());
			sysInfoRedis2.setAppIosUpdFlag(sysInfo.getAppIosUpdFlag());
			sysInfoRedis2.setAppAndroidVersion(sysInfo.getAppAndroidVersion());
			sysInfoRedis2.setAppAndroidUpdFlag(sysInfo.getAppAndroidUpdFlag());
			sysInfoRedis2.setAndroidDownloadUrl(sysInfo.getAndroidDownloadUrl());
			sysInfoRedis2.setUserProtocolUrl(sysInfo.getUserProtocolUrl());
			sysInfoRedis2.setDataServerUrl(sysInfo.getDataServerUrl());
			sysInfoRedis2.setResourceServerUrl(sysInfo.getResourceServerUrl());
			sysInfoRedis2.setAboutContent(sysInfo.getAboutContent());
			sysInfoRedis2.setWebpageServerUrl(sysInfo.getWebPageServerUrl());
			sysInfoRedis2.setSplashImgUrl(sysInfo.getSplashImgUrl());
			sysInfoRedis2.setCompanyTelephone(sysInfo.getCompanyTelephone());
			sysInfoRedis2.setCompanyWebsite(sysInfo.getCompanyWebsite());
			sysInfoRedis2.setUpdTime(sysInfo.getUpdTime());
			
			boolean cc = sysInfoDao.save(sysInfoRedis2);
			System.out.println( (cc == true) ? "成功":"失敗");
		}else
		{			
			//返回數據
			sysInfo.setAppName(sysInfoRedis.getAppName());
			sysInfo.setAppStoreId(sysInfoRedis.getAppStoreId());
			sysInfo.setAppIosId(sysInfoRedis.getAppIosId());
			sysInfo.setAppIosVersion(sysInfoRedis.getAppIosVersion());
			sysInfo.setAppIosUpdFlag(sysInfoRedis.getAppIosUpdFlag());
			sysInfo.setAppAndroidVersion(sysInfoRedis.getAppAndroidVersion());
			sysInfo.setAppAndroidUpdFlag(sysInfoRedis.getAppAndroidUpdFlag());
			sysInfo.setAndroidDownloadUrl(sysInfoRedis.getAndroidDownloadUrl());
			sysInfo.setUserProtocolUrl(sysInfoRedis.getUserProtocolUrl());
			sysInfo.setDataServerUrl(sysInfoRedis.getDataServerUrl());
			sysInfo.setResourceServerUrl(sysInfoRedis.getResourceServerUrl());
			sysInfo.setAboutContent(sysInfoRedis.getAboutContent());
			sysInfo.setWebPageServerUrl(sysInfoRedis.getWebpageServerUrl());
			sysInfo.setSplashImgUrl(sysInfoRedis.getSplashImgUrl());
			sysInfo.setCompanyTelephone(sysInfoRedis.getCompanyTelephone());
			sysInfo.setCompanyWebsite(sysInfoRedis.getCompanyWebsite());
			sysInfo.setUpdTime(sysInfoRedis.getUpdTime());
		}
		return sysInfo;
	}
相關文章
相關標籤/搜索