spring如何整合jedis呢?

戚薇 Spring 发布时间:2023-06-12 08:27:59 阅读数:14776 1
下文笔者讲述Spring整合jedis的方法及示例分享,如下所示

Spring整合jedis的实现思路

1.Spring引入redis.clients.jedis.JedisPool类
2.编写jedisPool相关配置类
3.编写相应的工具类
例:Spring整合jedis
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: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 https://www.springframework.org/schema/context/spring-context.xsd">
 
    <!-- Spring聚合配置 -->
    <context:property-placeholder location="redis.properties" />
    <bean id="poolConfig" class="redis.clients.jedis.JedisPoolConfig">
        <property name="maxTotal" value="${redis.maxTotal}" />
        <property name="maxIdle" value="${redis.maxIdle}" />
        <property name="minIdle" value="${redis.minIdle}" />
    </bean>
 
    <bean id="jedisPool" class="redis.clients.jedis.JedisPool">
        <constructor-arg name="poolConfig" ref="poolConfig" />
        <constructor-arg name="host" value="${redis.host}" />
        <constructor-arg name="port" value="${redis.port}" />
        <constructor-arg name="timeout" value="${redis.timeout}" />
        <constructor-arg name="password" value="${redis.password}" />
    </bean>
 
    <bean class="redisutil.demo.utils.SpringBeanHolder" /> 
</beans>

Bean加载如下

package redisutil.demo.utils;
 
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
 
public class SpringBeanHolder implements ApplicationContextAware {
 
    private static ApplicationContext ac;
 
    @Override
    public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
 
        ac = applicationContext;
    }
 
    public static Object getBean(String beanName){
 
        return ac.getBean(beanName);
    }
 
    public static<T> T getBean(Class<T> clazz){
 
        return ac.getBean(clazz);
    }
}
 

操作jedis工具类

package redisutil.demo.utils;
 
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
 
public class RedisUtils {
 
    private static JedisPool jedisPool = null;
 
    static {
 
        jedisPool = (JedisPool)SpringBeanHolder.getBean("jedisPool");
    }
 
    public static void set(String key, String value){
 
        Jedis jedis = null;
 
        try {
 
            if(jedis == null){
 
                jedis = jedisPool.getResource();
                jedis.set(key, value);
            }
        }
        catch (Exception e){
 
            e.printStackTrace();
        }
        finally {
 
            jedis.close();
        }
    }
 
    public static void set(String key, String value, int expireTime){
 
        Jedis jedis = null;
 
        try {
 
            if(jedis == null){
 
                jedis = jedisPool.getResource();
                jedis.set(key, value);
                jedis.expire(key, expireTime);
            }
        }
        catch (Exception e){
 
            e.printStackTrace();
        }
        finally {
 
            jedis.close();
        }
    }
 
    public static String get(String key, String value){
 
        return null;
    } 
}
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/JavaFramework/Spring/202306/6768.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者