From 5ffead5c539f1c4695a19b535da3928baeacec80 Mon Sep 17 00:00:00 2001 From: byteblogs168 <598092184@qq.com> Date: Wed, 28 Sep 2022 16:51:08 +0800 Subject: [PATCH] =?UTF-8?q?refactor:0.0.4.2=20=E6=BF=80=E6=B4=BBx-retry-co?= =?UTF-8?q?re=E7=BB=84=E4=BB=B6=EF=BC=8C=E4=BD=BF=E7=94=A8ConditionalOnPro?= =?UTF-8?q?perty=E6=A8=A1=E5=BC=8F=E5=90=AF=E5=8A=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- example/pom.xml | 2 +- .../client/core/cache/GroupVersionCache.java | 2 +- .../client/core/config/XRetryProperties.java | 20 +++++++++++++------ .../x/retry/client/starter/EnableXRetry.java | 2 +- .../XRetryClientAutoConfiguration.java | 12 +++++++++++ .../client/starter/XRetryClientConfig.java | 16 --------------- .../starter/XRetryClientsRegistrar.java | 20 +++++++++++++++---- .../main/resources/META-INF/spring.factories | 2 +- .../x/retry/server/config/ShedlockConfig.java | 2 +- 9 files changed, 47 insertions(+), 31 deletions(-) create mode 100644 x-retry-client-starter/src/main/java/com/x/retry/client/starter/XRetryClientAutoConfiguration.java delete mode 100644 x-retry-client-starter/src/main/java/com/x/retry/client/starter/XRetryClientConfig.java diff --git a/example/pom.xml b/example/pom.xml index 510ad77c5..29ec3d492 100644 --- a/example/pom.xml +++ b/example/pom.xml @@ -38,7 +38,7 @@ com.byteblogs x-retry-client-starter - 0.0.4.1 + 0.0.4.2-SNAPSHOT com.baomidou diff --git a/x-retry-client-core/src/main/java/com/x/retry/client/core/cache/GroupVersionCache.java b/x-retry-client-core/src/main/java/com/x/retry/client/core/cache/GroupVersionCache.java index d16296319..bb3a1b6fc 100644 --- a/x-retry-client-core/src/main/java/com/x/retry/client/core/cache/GroupVersionCache.java +++ b/x-retry-client-core/src/main/java/com/x/retry/client/core/cache/GroupVersionCache.java @@ -22,7 +22,7 @@ import java.util.Set; * @date : 2022-05-02 21:06 */ @Component -@Order() +@Order public class GroupVersionCache implements Lifecycle { public static ConfigDTO configDTO; diff --git a/x-retry-client-core/src/main/java/com/x/retry/client/core/config/XRetryProperties.java b/x-retry-client-core/src/main/java/com/x/retry/client/core/config/XRetryProperties.java index 991b27fb7..814700a24 100644 --- a/x-retry-client-core/src/main/java/com/x/retry/client/core/config/XRetryProperties.java +++ b/x-retry-client-core/src/main/java/com/x/retry/client/core/config/XRetryProperties.java @@ -1,11 +1,15 @@ package com.x.retry.client.core.config; +import com.x.retry.common.core.context.SpringContext; import lombok.Data; import lombok.Getter; import lombok.Setter; import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; +import java.util.Objects; + /** * @author: www.byteblogs.com * @date : 2022-03-04 15:53 @@ -19,7 +23,7 @@ public class XRetryProperties { /** * 服务端对应的group */ - private static String group; + private String group; /** * 服务端配置 @@ -28,15 +32,19 @@ public class XRetryProperties { @Data public static class ServerConfig { + /** + * 服务端的地址,若服务端集群部署则此处配置域名 + */ private String host = "127.0.0.1"; + + /** + * 服务端netty的端口号 + */ private int port = 1788; } - public static void setGroup(String group) { - XRetryProperties.group = group; - } - public static String getGroup() { - return group; + XRetryProperties properties = SpringContext.applicationContext.getBean(XRetryProperties.class); + return Objects.requireNonNull(properties).group; } } diff --git a/x-retry-client-starter/src/main/java/com/x/retry/client/starter/EnableXRetry.java b/x-retry-client-starter/src/main/java/com/x/retry/client/starter/EnableXRetry.java index 5bbfd0fc2..8ebd63ce0 100644 --- a/x-retry-client-starter/src/main/java/com/x/retry/client/starter/EnableXRetry.java +++ b/x-retry-client-starter/src/main/java/com/x/retry/client/starter/EnableXRetry.java @@ -11,7 +11,7 @@ import java.lang.annotation.*; @Target({ElementType.TYPE}) @Retention(RetentionPolicy.RUNTIME) @Documented -@Import({XRetryClientConfig.class, XRetryClientsRegistrar.class}) +@Import(XRetryClientsRegistrar.class) public @interface EnableXRetry { String group(); diff --git a/x-retry-client-starter/src/main/java/com/x/retry/client/starter/XRetryClientAutoConfiguration.java b/x-retry-client-starter/src/main/java/com/x/retry/client/starter/XRetryClientAutoConfiguration.java new file mode 100644 index 000000000..6bc9fd1e1 --- /dev/null +++ b/x-retry-client-starter/src/main/java/com/x/retry/client/starter/XRetryClientAutoConfiguration.java @@ -0,0 +1,12 @@ +package com.x.retry.client.starter; + +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; +import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.Configuration; + +@Configuration +@ComponentScan("com.x.retry.client.core") +@ConditionalOnProperty(prefix = "x-retry", name = "enabled", havingValue = "true") +public class XRetryClientAutoConfiguration { + +} diff --git a/x-retry-client-starter/src/main/java/com/x/retry/client/starter/XRetryClientConfig.java b/x-retry-client-starter/src/main/java/com/x/retry/client/starter/XRetryClientConfig.java deleted file mode 100644 index a1f1219f0..000000000 --- a/x-retry-client-starter/src/main/java/com/x/retry/client/starter/XRetryClientConfig.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.x.retry.client.starter; - -import com.x.retry.client.core.config.XRetryProperties; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.ComponentScan; -import org.springframework.context.annotation.Configuration; - -@Configuration -@ComponentScan("com.x.retry.client.core") -public class XRetryClientConfig { - - @Autowired - public void setRetryProperties(XRetryProperties retryProperties) { - XRetryProperties.setGroup(XRetryClientsRegistrar.GROUP); - } -} diff --git a/x-retry-client-starter/src/main/java/com/x/retry/client/starter/XRetryClientsRegistrar.java b/x-retry-client-starter/src/main/java/com/x/retry/client/starter/XRetryClientsRegistrar.java index 652b62fdf..5af5ada4f 100644 --- a/x-retry-client-starter/src/main/java/com/x/retry/client/starter/XRetryClientsRegistrar.java +++ b/x-retry-client-starter/src/main/java/com/x/retry/client/starter/XRetryClientsRegistrar.java @@ -1,7 +1,10 @@ package com.x.retry.client.starter; import org.springframework.beans.factory.support.BeanDefinitionRegistry; +import org.springframework.context.EnvironmentAware; import org.springframework.context.annotation.ImportBeanDefinitionRegistrar; +import org.springframework.core.env.Environment; +import org.springframework.core.env.StandardEnvironment; import org.springframework.core.type.AnnotationMetadata; import java.util.Map; @@ -10,13 +13,22 @@ import java.util.Map; * @author: www.byteblogs.com * @date : 2022-03-04 18:44 */ -public class XRetryClientsRegistrar implements ImportBeanDefinitionRegistrar { +public class XRetryClientsRegistrar implements ImportBeanDefinitionRegistrar, EnvironmentAware { - public static String GROUP = ""; + private StandardEnvironment standardEnvironment; @Override public void registerBeanDefinitions(AnnotationMetadata importingClassMetadata, BeanDefinitionRegistry registry) { - Map attrs = importingClassMetadata.getAnnotationAttributes(EnableXRetry.class.getName()); - XRetryClientsRegistrar.GROUP = (String) attrs.get("group"); + Map attrs = importingClassMetadata.getAnnotationAttributes(EnableXRetry.class.getName()); + Map systemEnvironment = standardEnvironment.getSystemProperties(); + systemEnvironment.put("x-retry.group", (String) attrs.get("group")); + } + + @Override + public void setEnvironment(Environment environment) { + StandardEnvironment standardEnvironment = (StandardEnvironment) environment; + this.standardEnvironment = standardEnvironment; + Map systemEnvironment = standardEnvironment.getSystemProperties(); + systemEnvironment.put("x-retry.enabled", true); } } diff --git a/x-retry-client-starter/src/main/resources/META-INF/spring.factories b/x-retry-client-starter/src/main/resources/META-INF/spring.factories index f39a6496f..00c846097 100644 --- a/x-retry-client-starter/src/main/resources/META-INF/spring.factories +++ b/x-retry-client-starter/src/main/resources/META-INF/spring.factories @@ -1,2 +1,2 @@ org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ - com.x.retry.client.starter.XRetryClientConfig \ No newline at end of file + com.x.retry.client.starter.XRetryClientAutoConfiguration diff --git a/x-retry-server/src/main/java/com/x/retry/server/config/ShedlockConfig.java b/x-retry-server/src/main/java/com/x/retry/server/config/ShedlockConfig.java index 9200ce18c..d55710ea2 100644 --- a/x-retry-server/src/main/java/com/x/retry/server/config/ShedlockConfig.java +++ b/x-retry-server/src/main/java/com/x/retry/server/config/ShedlockConfig.java @@ -35,7 +35,7 @@ public class ShedlockConfig { @Bean public TaskScheduler scheduledExecutorService() { ThreadPoolTaskScheduler scheduler = new ThreadPoolTaskScheduler(); - scheduler.setPoolSize(8); + scheduler.setPoolSize(2); scheduler.setThreadNamePrefix("x-retry-scheduled-thread-"); return scheduler; }