dependencyManagement:<dependencyManagement><dependencies><dependency><groupId>com.tencent.cloud</groupId><artifactId>spring-cloud-tencent-dependencies</artifactId><version>${version}</version><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement>
spring-cloud-starter-tencent-all引入 sct 所有 starters。<dependency><groupId>com.tencent.cloud</groupId><artifactId>spring-cloud-starter-tencent-all</artifactId></dependency>
spring-cloud-starter-tencent-polaris-config。<dependency><groupId>com.tencent.cloud</groupId><artifactId>spring-cloud-starter-tencent-polaris-config</artifactId></dependency>
spring.cloud.polaris.address即可。spring.cloud.polaris.address用于指定注册中心集群的地址,配置spring.cloud.polaris.config.address用于指定配置中心的地址。如下所示spring.config.import=optional:Polaris需要填写。spring:application:name: ${application.name}config:import: optional:polariscloud:polaris:address: grpc://${修改为 Polaris 服务地址}:8091 # 必填namespace: default # 全局 namespace 参数config:address: grpc://${独立的配置中心}:8093 # 选填,只有在配置中心和注册中心是两个不同的地址时才需要配置auto-refresh: true # 选填,当配置发布后,动态刷新 Spring 上下文,默认值为 true
${spring.application.name}的配置分组,Spring Cloud Tencent Config 会自动注入当前应用名分组下的:application-${activeProfile}.propertiesapplication-${activeProfile}.ymlapplication-${activeProfile}.yamlapplication.propertiesapplication.ymlapplication.yamlbootstrap-${activeProfile}.propertiesbootstrap-${activeProfile}.ymlbootstrap-${activeProfile}.yamlbootstrap.propertiesbootstrap.ymlbootstrap.yamlyml里配置 spring.cloud.polaris.config.groups,如下所示:spring:cloud:polaris:config:groups:- name: ${spring.application.name} # 选填,注入自定义配置的配置分组files: [ "config/application.properties", "config/bootstrap.yml" ] # 注入自定义配置文件列表,当 key 冲突时,排在前面的配置文件优先级高于后面
@ConfigurationProperties和@Value注解。@Value 比较适用于配置比较少的场景@ConfigurationProperties 则更适用于有较多配置的情况@Value注入@Value("${timeout:1000}")private int timeout;
@ConfigurationProperties注入@Component@ConfigurationProperties(prefix = "teacher")public class Person {private String name;private int age;String getName() {return name;}void setName(String name) {this.name = name;}int getAge() {return age;}void setAge(int age) {this.age = age;}@Overridepublic String toString() {return "User{" + "name='" + name + '\\'' + ", age=" + age + '}';}}.
polaris-config-example的分组。 把polaris-config-example应用的配置文件都放在polaris-config-example分组下,这样便于配置管理。module1/file1.properties,module1/file2.yaml,module2/file3.yaml。Spring Cloud Tencent Config 即已完成。@Value属性对应的 Bean 的映射关系。当属性配置更新时,找到所有的待更新的 Bean 并利用 Java 的反射机制更新属性。@ConfigurationProperties Bean,影响面更小。实现原理请看PolarisRefreshAffectedContextRefresher和AffectedConfigurationPropertiesRebinder。@RefreshScope方式刷新配置,可以配置spring.cloud.polaris.config.refresh-type=refresh_context。bootstrap.yml里配置spring.cloud.polaris.config.auto-refresh=false。文档反馈