Browse Source

增加BloomFilterManager自动配置

zhou-hao 6 years ago
parent
commit
4338d4a528

+ 9 - 0
hsweb-concurrent/hsweb-concurrent-counter/hsweb-concurrent-counter-api/src/main/java/org/hswebframework/web/concurrent/counter/CounterAutoConfiguration.java

@@ -1,5 +1,6 @@
 package org.hswebframework.web.concurrent.counter;
 
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
 import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
@@ -16,4 +17,12 @@ public class CounterAutoConfiguration {
     public CounterManager counterManager() {
         return new SimpleCounterManager();
     }
+
+
+    @Bean
+    @ConditionalOnMissingBean(BloomFilterManager.class)
+    @ConditionalOnClass(name = "com.google.common.hash.BloomFilter")
+    public BloomFilterManager bloomFilterManager() {
+        return new GuavaBloomFilterManager();
+    }
 }

+ 8 - 0
hsweb-concurrent/hsweb-concurrent-counter/hsweb-concurrent-counter-redis/src/main/java/org/hswebframework/web/counter/redis/RedisCounterAutoConfiguration.java

@@ -1,5 +1,6 @@
 package org.hswebframework.web.counter.redis;
 
+import org.hswebframework.web.concurrent.counter.BloomFilterManager;
 import org.hswebframework.web.concurrent.counter.CounterAutoConfiguration;
 import org.hswebframework.web.concurrent.counter.CounterManager;
 import org.redisson.api.RedissonClient;
@@ -21,4 +22,11 @@ public class RedisCounterAutoConfiguration {
     public CounterManager counterManager(RedissonClient client) {
         return new RedissonCounterManager(client);
     }
+
+
+    @Bean
+    @ConditionalOnBean(BloomFilterManager.class)
+    public BloomFilterManager bloomFilterManager(RedissonClient client) {
+        return new RedisBloomFilterManager(client);
+    }
 }