spring+sparingmvc+codis

  <dependency>  
            <groupId>io.codis.jodis</groupId>  
            <artifactId>jodis</artifactId>  
            <version>0.3.1</version>  
        </dependency>  
        <dependency>  
            <groupId>com.wandoulabs.jodis</groupId>  
            <artifactId>jodis</artifactId>  
            <version>0.2.2</version>  
        </dependency>

    <!-- 扫描文件(自动将servicec层注入) -->
    <context:component-scan base-package="com.deppon.service"/>
    
    	<bean id="poolConfigRedis" class="redis.clients.jedis.JedisPoolConfig">
		<!--最大分配的对象树 -->
		<property name="maxTotal" value="1024"></property>
		<!--最大能够保持idle状态的对象数 -->
		<property name="maxIdle" value="0"></property>
		<!--当缓存池内没有返回数据时,最大等待时间 -->
		<property name="maxWaitMillis" value="1000"></property>
		<!-- 当调用borrow Object方法时,是否进行有效性检查 -->
		<property name="testOnBorrow" value="false"></property>
		<!--当调用return Object方法时,是否进行有效性检查 -->
		<property name="testOnReturn" value="false"></property>
	</bean>
	
	<bean id="redisClient" class="com.deppon.cache.store.RedisClient">
		<property name="host" value="10.230.25.56:2181,10.230.25.57:2181,192.168.67.206:2181"></property>
		<property name="timeout" value="3000"></property>
	    <property name="zkProxyDir" value="/jodis/codis-demo"></property>
	     <property name="poolConfig" ref="poolConfigRedis"></property>
	</bean>
	<bean id="springContextUtil" class="com.deppon.util.SpringContextUtil" lazy-init="false"/>
public class SpringContextUtil implements ApplicationContextAware{
	private static ApplicationContext applicationContext;     // Spring应用上下文环境
	 
	/**
	 * 实现ApplicationContextAware接口的回调方法,设置上下文环境   
	 * @param applicationContext
	 * @throws BeansException
	 */
	public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
		SpringContextUtil.applicationContext = applicationContext;
	}
 
	/**
	 * @return ApplicationContext
	 */
	public static ApplicationContext getApplicationContext() {
		return applicationContext;
	}
  
	/**
	 * 获取对象   
	 * @param name
	 * @return Object 一个以所给名字注册的bean的实例
	 * @throws BeansException
	 */
	public static Object getBean(String name) throws BeansException {
		return applicationContext.getBean(name);
	}
  
	/**
	 * 获取类型为requiredType的对象
	 * 如果bean不能被类型转换,相应的异常将会被抛出(BeanNotOfRequiredTypeException)
	 * @param name       bean注册名
	 * @param requiredType 返回对象类型
	 * @return Object 返回requiredType类型对象
	 * @throws BeansException
	 */
	public static <T> T getBean(String name, Class<T> requiredType) throws BeansException {
		return (T) applicationContext.getBean(name, requiredType);
	}
   
	/**
	 * 如果BeanFactory包含一个与所给名称匹配的bean定义,则返回true 
	 * @param name
	 * @return boolean
	 */
    public static boolean containsBean(String name) {
    	return applicationContext.containsBean(name);
    }
   
    /**
     * 判断以给定名字注册的bean定义是一个singleton还是一个prototype。
     * 如果与给定名字相应的bean定义没有被找到,将会抛出一个异常(NoSuchBeanDefinitionException)   
     * @param name
     * @return boolean
     * @throws NoSuchBeanDefinitionException
     */
	public static boolean isSingleton(String name) throws NoSuchBeanDefinitionException {
		return applicationContext.isSingleton(name);
	}

	/**
	 * @param name
	 * @return Class 注册对象的类型
	 * @throws NoSuchBeanDefinitionException
	 */
	public static Class<?> getType(String name) throws NoSuchBeanDefinitionException {
		return applicationContext.getType(name);
	}

	/**
	 * 如果给定的bean名字在bean定义中有别名,则返回这些别名   
	 * @param name
	 * @return
	 * @throws NoSuchBeanDefinitionException
	 */
	public static String[] getAliases(String name) throws NoSuchBeanDefinitionException {
		return applicationContext.getAliases(name);
	}
	
}
public class RedisUtils<V>{
   
  Logger logger = Logger.getLogger(RedisUtils.class);
  private static RedisClient redisClient;
   public  void save(String key,V v){
	   redisClient=(RedisClient) SpringContextUtil.getBean("redisClient");
	   Jedis jedis=null;
    	try{
    		jedis=redisClient.getResource();
			String svalue = JSON.toJSONString(v);
			jedis.rpush(key, svalue);
		}catch(Exception e){
			logger.error(e.getMessage());
			
		}finally{
			if(null != jedis){
				jedis.close();
			}
		}
 }

public List<V> get(String key){
	   if(key==null || "".equals(key)){
		   throw new BusinessException("key 值不可为空");
	   }
	   redisClient=(RedisClient) SpringContextUtil.getBean("redisClient");
	   List<V> ls=new ArrayList<V>();
   	   Jedis jedis=null;
	   try {
		   jedis=redisClient.getResource();
		   List<String> list=jedis.lrange(key, 0, -1);
		   for (String str : list) {
				JSONObject json=JSON.parseObject(str);
				PdamPositionEntity pda=JSONObject.toJavaObject(json, PdamPositionEntity.class);
				System.out.println(pda.getCourierCode());
				ls.add((V) pda);
			}
	} catch (Exception e) {
		logger.error(e.getMessage());
	}finally{
		if(null != jedis){
			jedis.close();
		}
	}
	   return ls;
   }
}

调用codis工具栏保存数据:
public class PdamPositionService extends RedisUtils<PdamPositionEntity>  implements IPdamPositionService {
	@Resource
	private PdamPositionDao pdamPositionDao;
	private static SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
	public void insertPdam(PdamPositionEntity pdamEntity) {
		pdamPositionDao.insertPdam(pdamEntity);
		save(pdamEntity.getCourierCode()+sdf.format(new Date()), pdamEntity);
		get(pdamEntity.getCourierCode()+sdf.format(new Date()));
	}
}



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值