From cb255447048bcfa76ff22dc192331e830c90331d Mon Sep 17 00:00:00 2001 From: DerekYRC <15521077528@163.com> Date: Mon, 11 Jul 2022 21:55:13 +0800 Subject: [PATCH] Remove @Value annotation from classed annotated with @ConfigurationProperties annotation --- .../polaris/PolarisDiscoveryProperties.java | 32 +++++++++++++------ .../consul/ConsulContextProperties.java | 24 +++++++++----- 2 files changed, 38 insertions(+), 18 deletions(-) diff --git a/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/PolarisDiscoveryProperties.java b/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/PolarisDiscoveryProperties.java index 9a58bcccd..b76d7f173 100644 --- a/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/PolarisDiscoveryProperties.java +++ b/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/PolarisDiscoveryProperties.java @@ -18,17 +18,21 @@ package com.tencent.cloud.polaris; +import javax.annotation.PostConstruct; + import com.tencent.cloud.common.constant.ContextConstant; import com.tencent.cloud.polaris.context.PolarisConfigModifier; import com.tencent.polaris.factory.config.ConfigurationImpl; import com.tencent.polaris.factory.config.consumer.DiscoveryConfigImpl; import com.tencent.polaris.factory.config.provider.RegisterConfigImpl; +import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.context.annotation.Bean; +import org.springframework.core.env.Environment; /** * Properties for Polaris. @@ -38,16 +42,28 @@ import org.springframework.context.annotation.Bean; @ConfigurationProperties("spring.cloud.polaris.discovery") public class PolarisDiscoveryProperties { + @Autowired + private Environment environment; + + @PostConstruct + public void init() { + if (StringUtils.isEmpty(service)) { + service = environment.getProperty("spring.cloud.polaris.service"); + if (StringUtils.isEmpty(service)) { + service = environment.getProperty("spring.application.name"); + } + } + port = environment.containsProperty("server.port") ? Integer.valueOf(environment.getProperty("server.port")) : 8080; + } + /** * Namespace, separation registry of different environments. */ - @Value("${spring.cloud.polaris.discovery.namespace:${spring.cloud.polaris.namespace:#{'default'}}}") private String namespace; /** * Service name to registry. */ - @Value("${spring.cloud.polaris.discovery.service:${spring.cloud.polaris.service:${spring.application.name:}}}") private String service; /** @@ -58,8 +74,7 @@ public class PolarisDiscoveryProperties { /** * Load balance weight. */ - @Value("${spring.cloud.polaris.discovery.weight:#{100}}") - private int weight; + private int weight = 100; /** * Version number. @@ -69,13 +84,11 @@ public class PolarisDiscoveryProperties { /** * Protocol name such as http, https. */ - @Value("${spring.cloud.polaris.discovery.protocol:http}") - private String protocol; + private String protocol = "http"; /** * Port of instance. */ - @Value("${server.port:8080}") private int port; /** @@ -86,19 +99,18 @@ public class PolarisDiscoveryProperties { /** * If instance registered. */ - @Value("${spring.cloud.polaris.discovery.register:#{true}}") + @Value("${spring.cloud.polaris.discovery.register-enabled:${spring.cloud.polaris.discovery.register:#{true}}}") private Boolean registerEnabled; /** * If heartbeat enabled. */ - @Value("${spring.cloud.polaris.discovery.heartbeat.enabled:#{true}}") + @Value("${spring.cloud.polaris.discovery.heartbeat-enabled:${spring.cloud.polaris.discovery.heartbeat.enabled:#{true}}}") private Boolean heartbeatEnabled = true; /** * Custom health check url to override default. */ - @Value("${spring.cloud.polaris.discovery.health-check-url:}") private String healthCheckUrl; /** diff --git a/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/extend/consul/ConsulContextProperties.java b/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/extend/consul/ConsulContextProperties.java index 4e0c98f77..a18894044 100644 --- a/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/extend/consul/ConsulContextProperties.java +++ b/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/extend/consul/ConsulContextProperties.java @@ -21,6 +21,8 @@ import java.util.ArrayList; import java.util.Collections; import java.util.Map; +import javax.annotation.PostConstruct; + import com.tencent.cloud.common.constant.ContextConstant.ModifierOrder; import com.tencent.cloud.polaris.context.PolarisConfigModifier; import com.tencent.polaris.api.config.plugin.DefaultPlugins; @@ -36,6 +38,7 @@ import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.context.annotation.Bean; +import org.springframework.core.env.Environment; import org.springframework.util.CollectionUtils; /** @@ -43,9 +46,19 @@ import org.springframework.util.CollectionUtils; * * @author Haotian Zhang */ -@ConfigurationProperties("spring.cloud.consul") +@ConfigurationProperties("spring.cloud.consul.discovery") public class ConsulContextProperties { + @Autowired + private Environment environment; + + @PostConstruct + public void init() { + if (StringUtils.isEmpty(serviceName)) { + serviceName = environment.getProperty("spring.application.name"); + } + } + /** * Host of consul(or consul agent). */ @@ -55,22 +68,17 @@ public class ConsulContextProperties { private boolean enabled = false; - @Value("${spring.cloud.consul.discovery.register:#{'true'}}") - private boolean register; + private boolean register = true; - @Value("${spring.cloud.consul.discovery.enabled:#{'true'}}") + @Value("${spring.cloud.consul.discovery.discovery-enabled:${spring.cloud.consul.discovery.enabled:#{true}}}") private boolean discoveryEnabled; - @Value("${spring.cloud.consul.discovery.instance-id:}") private String instanceId; - @Value("${spring.cloud.consul.discovery.service-name:${spring.application.name:}}") private String serviceName; - @Value("${spring.cloud.consul.discovery.ip-address:}") private String ipAddress; - @Value("${spring.cloud.consul.discovery.prefer-ip-address:#{'false'}}") private boolean preferIpAddress; public String getHost() {