一、绪论
当redis内容发生变化时需要通知一些观察者做一些动作怎么做?
二、JAVA抽象类
public abstract class AbstractRedisChangeListener {public abstract void change(String key, String value, String crudType);
}
使用abstract进行修饰一个类
其中抽象类 可以定义抽象方法
public abstract void change(String key, String value, String crudType);
也是需要abstract来修饰,而且抽象类不需要有方法体{}
这样我们就相当于制定了一个自定义的类型。
三、监听redis是否有变化
@Service
public class RedisExtendService {private List<AbstractRedisChangeListener> listeners;/*** redis 数据变化时通知观察者* @param key* @param value*/public void redisDataChange(String key, String value, String crudType) {if(CollUtil.isEmpty(listeners)) {return;}for (AbstractRedisChangeListener listener : listeners) {listener.change(key, value,crudType);}}/*** 添加观察者,项目上类启动时添加* @param listener*/public void addListener(AbstractRedisChangeListener listener) {if(listeners == null) {listeners = new ArrayList<>();}listeners.add(listener);}
}
if(listeners == null) {
listeners = new ArrayList<>();
}
listeners.add(listener);
创建了观察者列表