SpringMVC4.3.6.RELEASE+jedis 过期监听配置

这里写自定义目录标题

SpringMVC+Jedis过期监听配置

引入Jar包pom.xml

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

配置文件

   <!-- 连接池参数 -->
	 <bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig">
        <property name="maxIdle" value="${redis.pool.maxIdle}" />
        <property name="minIdle" value="${redis.pool.minIdle}" />
        <!-- <property name="maxTotal" value="${redis.pool.maxTotal}" />
         <property name="maxWaitMillis" value="${redis.pool.maxWaitMillis}" />-->
        <property name="minEvictableIdleTimeMillis" value="${redis.pool.minEvictableIdleTimeMillis}"></property>
        <property name="numTestsPerEvictionRun" value="${redis.pool.numTestsPerEvictionRun}"></property>
        <property name="timeBetweenEvictionRunsMillis" value="${redis.pool.timeBetweenEvictionRunsMillis}"></property>
        <property name="testOnBorrow" value="${redis.pool.testOnBorrow}" />
        <property name="testOnReturn" value="${redis.pool.testOnReturn}" />
        <property name="testWhileIdle" value="${redis.pool.testWhileIdle}"></property>
    </bean>
      <!-- 配置jedis -->
    <bean id="jedisConnectionFactory" class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory"
          p:host-name="${redis.host}" p:port="${redis.port}" p:password="${redis.pwd}"  p:pool-config-ref="jedisPoolConfig"
    />
    <!-- 将监听者类 放入Spring容器 -->
    <bean id="messageListener" class="org.springframework.data.redis.listener.adapter.MessageListenerAdapter">
        <constructor-arg>
            <bean class="com.jxx.app.listener.MyMessageDelegateImpl"/>
        </constructor-arg>
    </bean>
    <bean id="myMessageDelegateImpl" class="com.jxx.app.listener.MyMessageDelegateImpl"/>
 <!-- 配置监听者容器 -->
      <!-- 将监听者类 放入Spring容器 -->
    <bean id="messageListener" class="org.springframework.data.redis.listener.adapter.MessageListenerAdapter">
        <constructor-arg>
            <bean class="com.jxx.app.listener.ExpiredMessageDelegateImpl"/>
        </constructor-arg>
    </bean>
    <!-- 配置监听者容器 -->
    <bean id="redisContainer" class="org.springframework.data.redis.listener.RedisMessageListenerContainer">
        <property name="connectionFactory" ref="jedisConnectionFactory"/>
        <property name="messageListeners">
            <map>
                <entry key-ref="messageListener">
                    <bean class="org.springframework.data.redis.listener.ChannelTopic">
                        <constructor-arg value="__keyevent@0__:expired"/>
                    </bean>
                </entry>
            </map>
        </property>
    </bean>

就是普通pojo类不用实现和继承

public interface ExpiredMessageDelegate {
    void handleMessage(String message);

    void handleMessage(Map message);

    void handleMessage(byte[] message);

    void handleMessage(Serializable message);

    void handleMessage(Serializable message, String channel);
}
public class ExpiredMessageDelegateImpl implements ExpiredMessageDelegate {
    @Override
    public void handleMessage(String message) {
        System.out.println(message);
    }

    @Override
    public void handleMessage(Map message) {
        System.out.println(message);

    }

    @Override
    public void handleMessage(byte[] message) {
        System.out.println(message);

    }

    @Override
    public void handleMessage(Serializable message) {
        System.out.println(message);

    }

    @Override
    public void handleMessage(Serializable message, String channel) {
        System.out.println(message);
    }
}

也可以继承 MessageListener 也是OK的 看自己需要

public class RedisKeyExpiredListener  implements MessageListener {

   private static Logger logger = LoggerFactory.getLogger(RedisKeyExpiredListener.class);
   @Override
    public void onMessage(Message message, byte[] bytes) {
        System.out.println(message);
    }
}

配置文件是这样

   <!-- 将监听者类 放入Spring容器 -->
 <bean id="messageListener" class="org.springframework.data.redis.listener.adapter.MessageListenerAdapter">
        <constructor-arg>
            <bean class="com.jxx.app.listener.RedisKeyExpiredListener"/>
        </constructor-arg>
    </bean>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Spring MVC中,可以使用web.xml文件进行基础配置。下面是一个示例的web.xml配置文件: ```xml <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"> <display-name>Spring MVC Application</display-name> <!-- 配置DispatcherServlet --> <servlet> <servlet-name>dispatcher</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/springmvc-servlet.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <!-- 映射DispatcherServlet的URL --> <servlet-mapping> <servlet-name>dispatcher</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> </web-app> ``` 在上面的配置中,我们首先定义了一个名为`dispatcher`的Servlet,并指定了它的类为`org.springframework.web.servlet.DispatcherServlet`。然后,我们通过`init-param`元素指定了Spring MVC配置文件的位置,这里是`/WEB-INF/springmvc-servlet.xml`。最后,我们使用`servlet-mapping`元素将`dispatcher`Servlet映射到根路径`/`。 需要注意的是,上述配置中的`/WEB-INF/springmvc-servlet.xml`是Spring MVC的配置文件,用于定义控制器、视图解析器等相关配置。你可以根据自己的需求进行配置

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值