zhouhao 8 лет назад
Родитель
Сommit
c33148faff

+ 32 - 0
hsweb-concurrent/hsweb-concurrent-lock/hsweb-concurrent-lock-starter/pom.xml

@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <artifactId>hsweb-concurrent-lock</artifactId>
+        <groupId>org.hswebframework.web</groupId>
+        <version>3.0-SNAPSHOT</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>hsweb-concurrent-lock-starter</artifactId>
+
+
+    <dependencies>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.hswebframework.web</groupId>
+            <artifactId>hsweb-concurrent-lock-api</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.hswebframework.web</groupId>
+            <artifactId>hsweb-concurrent-lock-redis</artifactId>
+            <version>${project.version}</version>
+            <optional>true</optional>
+        </dependency>
+    </dependencies>
+</project>

+ 24 - 0
hsweb-concurrent/hsweb-concurrent-lock/hsweb-concurrent-lock-starter/src/main/java/org/hswebframework/web/concurrent/lock/starter/LockFactoryAutoConfiguration.java

@@ -0,0 +1,24 @@
+package org.hswebframework.web.concurrent.lock.starter;
+
+import org.hswebframework.web.concurrent.lock.LockManager;
+import org.hswebframework.web.concurrent.lock.SimpleLockManager;
+import org.springframework.boot.autoconfigure.ImportAutoConfiguration;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * TODO 完成注释
+ *
+ * @author zhouhao
+ */
+@Configuration
+@ImportAutoConfiguration(RedisLockFactoryAutoConfiguration.class)
+public class LockFactoryAutoConfiguration {
+
+    @Bean
+    @ConditionalOnMissingBean(LockManager.class)
+    public SimpleLockManager simpleLockFactory() {
+        return new SimpleLockManager();
+    }
+}

+ 23 - 0
hsweb-concurrent/hsweb-concurrent-lock/hsweb-concurrent-lock-starter/src/main/java/org/hswebframework/web/concurrent/lock/starter/RedisLockFactoryAutoConfiguration.java

@@ -0,0 +1,23 @@
+package org.hswebframework.web.concurrent.lock.starter;
+
+import org.hswebframework.web.concurrent.lock.redis.RedissonLockManager;
+import org.redisson.Redisson;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * TODO 完成注释
+ *
+ * @author zhouhao
+ */
+@Configuration
+@ConditionalOnClass(Redisson.class)
+@ConditionalOnBean(Redisson.class)
+public class RedisLockFactoryAutoConfiguration {
+    @Bean
+    public RedissonLockManager redissonLockFactory(Redisson redisson) {
+        return new RedissonLockManager(redisson);
+    }
+}

+ 3 - 0
hsweb-concurrent/hsweb-concurrent-lock/hsweb-concurrent-lock-starter/src/main/resources/META-INF/spring.factories

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