From c2c2ad928abc637031262837a6a355e36d0903c8 Mon Sep 17 00:00:00 2001 From: lbw Date: Thu, 20 May 2021 15:15:11 +0800 Subject: [PATCH] :sparkles: pig-common-job Remove class scanning --- .../common/job/XxlJobAutoConfiguration.java | 32 ++++++++++++------- .../job/properties/XxlJobProperties.java | 29 +++-------------- 2 files changed, 24 insertions(+), 37 deletions(-) diff --git a/pigx-common/pigx-common-job/src/main/java/com/pig4cloud/pigx/common/job/XxlJobAutoConfiguration.java b/pigx-common/pigx-common-job/src/main/java/com/pig4cloud/pigx/common/job/XxlJobAutoConfiguration.java index 5d57fe384..260244f01 100644 --- a/pigx-common/pigx-common-job/src/main/java/com/pig4cloud/pigx/common/job/XxlJobAutoConfiguration.java +++ b/pigx-common/pigx-common-job/src/main/java/com/pig4cloud/pigx/common/job/XxlJobAutoConfiguration.java @@ -1,16 +1,18 @@ package com.pig4cloud.pigx.common.job; -import java.util.stream.Collectors; - +import com.pig4cloud.pigx.common.job.properties.XxlExecutorProperties; import com.pig4cloud.pigx.common.job.properties.XxlJobProperties; import com.xxl.job.core.executor.impl.XxlJobSpringExecutor; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; +import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.cloud.client.discovery.DiscoveryClient; import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; +import org.springframework.core.env.Environment; import org.springframework.util.StringUtils; +import java.util.stream.Collectors; + /** * xxl-job自动装配 * @@ -19,7 +21,7 @@ import org.springframework.util.StringUtils; */ @Configuration(proxyBeanMethods = false) @EnableAutoConfiguration -@ComponentScan("com.pig4cloud.pigx.common.job.properties") +@EnableConfigurationProperties(XxlJobProperties.class) public class XxlJobAutoConfiguration { /** @@ -34,16 +36,22 @@ public class XxlJobAutoConfiguration { * @return */ @Bean - public XxlJobSpringExecutor xxlJobSpringExecutor(XxlJobProperties xxlJobProperties, + public XxlJobSpringExecutor xxlJobSpringExecutor(XxlJobProperties xxlJobProperties, Environment environment, DiscoveryClient discoveryClient) { XxlJobSpringExecutor xxlJobSpringExecutor = new XxlJobSpringExecutor(); - xxlJobSpringExecutor.setAppname(xxlJobProperties.getExecutor().getAppname()); - xxlJobSpringExecutor.setAddress(xxlJobProperties.getExecutor().getAddress()); - xxlJobSpringExecutor.setIp(xxlJobProperties.getExecutor().getIp()); - xxlJobSpringExecutor.setPort(xxlJobProperties.getExecutor().getPort()); - xxlJobSpringExecutor.setAccessToken(xxlJobProperties.getExecutor().getAccessToken()); - xxlJobSpringExecutor.setLogPath(xxlJobProperties.getExecutor().getLogPath()); - xxlJobSpringExecutor.setLogRetentionDays(xxlJobProperties.getExecutor().getLogRetentionDays()); + XxlExecutorProperties executor = xxlJobProperties.getExecutor(); + // 应用名默认为服务名 + String appName = executor.getAppname(); + if (!StringUtils.hasText(appName)) { + appName = environment.getProperty("spring.application.name"); + } + xxlJobSpringExecutor.setAppname(appName); + xxlJobSpringExecutor.setAddress(executor.getAddress()); + xxlJobSpringExecutor.setIp(executor.getIp()); + xxlJobSpringExecutor.setPort(executor.getPort()); + xxlJobSpringExecutor.setAccessToken(executor.getAccessToken()); + xxlJobSpringExecutor.setLogPath(executor.getLogPath()); + xxlJobSpringExecutor.setLogRetentionDays(executor.getLogRetentionDays()); // 如果配置为空则获取注册中心的服务列表 "http://pigx-xxl:9080/xxl-job-admin" if (!StringUtils.hasText(xxlJobProperties.getAdmin().getAddresses())) { diff --git a/pigx-common/pigx-common-job/src/main/java/com/pig4cloud/pigx/common/job/properties/XxlJobProperties.java b/pigx-common/pigx-common-job/src/main/java/com/pig4cloud/pigx/common/job/properties/XxlJobProperties.java index 4a0eda184..ebaf7c66f 100644 --- a/pigx-common/pigx-common-job/src/main/java/com/pig4cloud/pigx/common/job/properties/XxlJobProperties.java +++ b/pigx-common/pigx-common-job/src/main/java/com/pig4cloud/pigx/common/job/properties/XxlJobProperties.java @@ -1,12 +1,8 @@ package com.pig4cloud.pigx.common.job.properties; import lombok.Data; -import org.springframework.beans.factory.InitializingBean; import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.context.EnvironmentAware; -import org.springframework.core.env.Environment; -import org.springframework.stereotype.Component; -import org.springframework.util.StringUtils; +import org.springframework.boot.context.properties.NestedConfigurationProperty; /** * xxl-job配置 @@ -15,30 +11,13 @@ import org.springframework.util.StringUtils; * @date 2020/9/14 */ @Data -@Component @ConfigurationProperties(prefix = "xxl.job") -public class XxlJobProperties implements InitializingBean, EnvironmentAware { - - private Environment environment; +public class XxlJobProperties { + @NestedConfigurationProperty private XxlAdminProperties admin = new XxlAdminProperties(); + @NestedConfigurationProperty private XxlExecutorProperties executor = new XxlExecutorProperties(); - @Override - public void afterPropertiesSet() { - // 若是没有设置appname 则取 application Name - if (!StringUtils.hasText(executor.getAppname())) { - executor.setAppname(environment.getProperty("spring.application.name")); - } - } - - /** - * Set the {@code Environment} that this component runs in. - */ - @Override - public void setEnvironment(Environment environment) { - this.environment = environment; - } - }