Kaynağa Gözat

优化counter

zhouhao 7 yıl önce
ebeveyn
işleme
bca7e6b521

+ 7 - 0
hsweb-concurrent/hsweb-concurrent-counter/hsweb-concurrent-counter-api/pom.xml

@@ -29,4 +29,11 @@
     <artifactId>hsweb-concurrent-counter-api</artifactId>
 
 
+    <dependencies>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter</artifactId>
+            <optional>true</optional>
+        </dependency>
+    </dependencies>
 </project>

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

@@ -0,0 +1,19 @@
+package org.hswebframework.web.concurrent.counter;
+
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * @author zhouhao
+ * @since 3.0
+ */
+@Configuration
+@ConditionalOnMissingBean(CounterManager.class)
+public class CounterAutoConfiguration {
+
+    @Bean
+    public CounterManager inMemoryCounterManager() {
+        return new SimpleCounterManager();
+    }
+}

+ 0 - 2
hsweb-concurrent/hsweb-concurrent-counter/hsweb-concurrent-counter-api/src/main/java/org/hswebframework/web/concurrent/counter/SimpleCounter.java

@@ -3,8 +3,6 @@ package org.hswebframework.web.concurrent.counter;
 import java.util.concurrent.atomic.AtomicLong;
 
 /**
- * TODO 完成注释
- *
  * @author zhouhao
  */
 public class SimpleCounter implements Counter {

+ 0 - 2
hsweb-concurrent/hsweb-concurrent-counter/hsweb-concurrent-counter-api/src/main/java/org/hswebframework/web/concurrent/counter/SimpleCounterManager.java

@@ -1,8 +1,6 @@
 package org.hswebframework.web.concurrent.counter;
 
 /**
- * TODO 完成注释
- *
  * @author zhouhao
  */
 public class SimpleCounterManager extends AbstractCounterManager {

+ 3 - 0
hsweb-concurrent/hsweb-concurrent-counter/hsweb-concurrent-counter-api/src/main/resources/META-INF/spring.factories

@@ -0,0 +1,3 @@
+# Auto Configure
+org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
+org.hswebframework.web.concurrent.counter.CounterAutoConfiguration

+ 4 - 0
hsweb-concurrent/hsweb-concurrent-counter/hsweb-concurrent-counter-redis/pom.xml

@@ -22,5 +22,9 @@
             <groupId>org.redisson</groupId>
             <artifactId>redisson</artifactId>
         </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter</artifactId>
+        </dependency>
     </dependencies>
 </project>

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

@@ -0,0 +1,22 @@
+package org.hswebframework.web.counter.redis;
+
+import org.redisson.api.RedissonClient;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * @author zhouhao
+ * @since 3.0
+ */
+@Configuration
+@ConditionalOnMissingBean(RedissonCounterManager.class)
+@ConditionalOnBean(RedissonClient.class)
+public class RedisCounterAutoConfiguration {
+
+    @Bean
+    public RedissonCounterManager redissonCounterManager(RedissonClient client) {
+        return new RedissonCounterManager(client);
+    }
+}

+ 3 - 0
hsweb-concurrent/hsweb-concurrent-counter/hsweb-concurrent-counter-redis/src/main/resources/META-INF/spring.factories

@@ -0,0 +1,3 @@
+# Auto Configure
+org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
+org.hswebframework.web.counter.redis.RedisCounterAutoConfiguration