diff --git a/src/main/java/io/jboot/aop/JbootAopFactory.java b/src/main/java/io/jboot/aop/JbootAopFactory.java index 3aab3f3c7b41c0c3265eea435497cd38195a9e02..937b466a62b502667cc0f40676719500726b9328 100644 --- a/src/main/java/io/jboot/aop/JbootAopFactory.java +++ b/src/main/java/io/jboot/aop/JbootAopFactory.java @@ -410,16 +410,17 @@ public class JbootAopFactory extends AopFactory { beanNameClassesMapping.put(beanName, implClass); } else { Class[] interfaceClasses = implClass.getInterfaces(); - if (interfaceClasses.length == 0) { - //add self - this.addMapping(implClass, implClass); - } else { - Class[] excludes = buildExcludeClasses(implClass); - for (Class interfaceClass : interfaceClasses) { - if (!inExcludes(interfaceClass, excludes)) { - this.addMapping(interfaceClass, implClass); - } + interfaceClasses = implClass.getSuperclass().getInterfaces(); + if (interfaceClasses.length == 0) { + this.addMapping(implClass, implClass); + continue; + } + } + Class[] excludes = buildExcludeClasses(implClass); + for (Class interfaceClass : interfaceClasses) { + if (!inExcludes(interfaceClass, excludes)) { + this.addMapping(interfaceClass, implClass); } } } diff --git a/src/main/java/io/jboot/components/cache/caredis/JbootCaredisCacheImpl.java b/src/main/java/io/jboot/components/cache/caredis/JbootCaredisCacheImpl.java index 3f2e41c9355697a2f58888192d983bbbbe0bd877..c02bf1bd22dad9f19150d3b9c9b05ac16bd1b26b 100644 --- a/src/main/java/io/jboot/components/cache/caredis/JbootCaredisCacheImpl.java +++ b/src/main/java/io/jboot/components/cache/caredis/JbootCaredisCacheImpl.java @@ -49,30 +49,32 @@ public class JbootCaredisCacheImpl extends JbootCacheBase { private String clientId; private Cache keysCache = Caffeine.newBuilder() - .expireAfterAccess(10, TimeUnit.MINUTES) - .expireAfterWrite(10, TimeUnit.MINUTES) - .build(); + .expireAfterAccess(10, TimeUnit.MINUTES) + .expireAfterWrite(10, TimeUnit.MINUTES) + .build(); public JbootCaredisCacheImpl(JbootCacheConfig config) { super(config); this.caffeineCacheImpl = new CaffeineCacheImpl(config); - this.redisCacheImpl = new JbootRedisCacheImpl(config); + this.clientId = StrUtil.uuid(); this.serializer = Jboot.getSerializer(); - //在某些场景下,多个应用使用同一个 redis 实例,此时可以通过配置 cacheSyncMqChannel 来解决缓存冲突的问题 - if (StrUtil.isNotBlank(config.getCacheSyncMqChannel())){ - this.channel = config.getCacheSyncMqChannel(); - } - - this.redis = redisCacheImpl.getRedis(); - this.redis.subscribe(new BinaryJedisPubSub() { - @Override - public void onMessage(byte[] channel, byte[] message) { - JbootCaredisCacheImpl.this.onMessage((String) serializer.deserialize(channel), serializer.deserialize(message)); + if(!config.isUseFirstLevelOnly()) { + //在某些场景下,多个应用使用同一个 redis 实例,此时可以通过配置 cacheSyncMqChannel 来解决缓存冲突的问题 + if (StrUtil.isNotBlank(config.getCacheSyncMqChannel())) { + this.channel = config.getCacheSyncMqChannel(); } - }, serializer.serialize(channel)); + this.redisCacheImpl = new JbootRedisCacheImpl(config); + this.redis = redisCacheImpl.getRedis(); + this.redis.subscribe(new BinaryJedisPubSub() { + @Override + public void onMessage(byte[] channel, byte[] message) { + JbootCaredisCacheImpl.this.onMessage((String) serializer.deserialize(channel), serializer.deserialize(message)); + } + }, serializer.serialize(channel)); + } } @@ -241,8 +243,11 @@ public class JbootCaredisCacheImpl extends JbootCacheBase { private void publishMessage(int action, String cacheName, Object key) { clearKeysCache(cacheName); - JbootCaredisMessage message = new JbootCaredisMessage(clientId, action, cacheName, key); - redis.publish(serializer.serialize(channel), serializer.serialize(message)); + if(!config.isUseFirstLevelOnly()){ + JbootCaredisMessage message = new JbootCaredisMessage(clientId, action, cacheName, key); + redis.publish(serializer.serialize(channel), serializer.serialize(message)); + } + } private void clearKeysCache(String cacheName) { diff --git a/src/main/java/io/jboot/support/redis/jedis/JbootJedisImpl.java b/src/main/java/io/jboot/support/redis/jedis/JbootJedisImpl.java index cc58035eef3cca0b753c32aaeb0513595e5be930..b5028a1fc05fce4def7188dcd5038af654ce40d9 100644 --- a/src/main/java/io/jboot/support/redis/jedis/JbootJedisImpl.java +++ b/src/main/java/io/jboot/support/redis/jedis/JbootJedisImpl.java @@ -1495,7 +1495,7 @@ public class JbootJedisImpl extends JbootRedisBase { LOG.warn("Disconnect to redis channels : " + Arrays.toString(channels)); break; } catch (JedisConnectionException e) { - LOG.error("Failed connect to redis, reconnect it.", e); + LOG.warn("Failed connect to redis, reconnect it.", e); QuietlyUtil.sleepQuietly(1000); } finally { returnResource(jedis); @@ -1534,7 +1534,7 @@ public class JbootJedisImpl extends JbootRedisBase { LOG.warn("Disconnect to redis channel in subscribe binaryListener!"); break; } catch (Throwable e) { - LOG.error("Failed connect to redis, reconnect it.", e); + LOG.warn("Failed connect to redis, reconnect it.", e); QuietlyUtil.sleepQuietly(1000); } finally { if (jedis != null) {