操作场景
本文介绍在本地开发 Java 应用,通过 Spring Cloud Tencent 的方式接入 TSF 独占注册配置中心,使用配置管理功能。
前提条件
1. 在开始开发前,请确保您已经参见 下载 Maven 下载安装了 Java 和 Maven。
2. 已创建 TSF 独占注册配置中心实例(TSE 北极星),操作步骤详细可参见 引擎管理。
操作步骤
步骤1:引入服务注册与发现的依赖
1. 引入 spring cloud tencent 依赖
修改应用根目录下的 pom.xml,添加
dependencyManagement
:<dependencyManagement><dependencies><!-- Spring Cloud Tencent TSF Dependencies --><dependency><groupId>com.tencent.cloud</groupId><artifactId>spring-cloud-tencent-tsf-dependencies</artifactId><version>${revision}</version><type>pom</type><scope>import</scope></dependency><!-- Spring Cloud Dependencies --><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>${spring.cloud.version}</version><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement>
注意:
springcloud tencent 和 springcloud 版本如下:
<revision>1.14.0-2022.0.5-SNAPSHOT</revision><spring.cloud.version>2022.0.5</spring.cloud.version>
2. 引入 spring cloud tencent tsf starter
<dependency><groupId>com.tencent.cloud</groupId><artifactId>spring-cloud-starter-tencent-tsf-all</artifactId></dependency>
步骤2:在代码中使用配置
用户可通过两种方式更新代码中的配置信息:使用配置类
@ConfigurationProperties
和@Value
注解。@Value
比较适用于配置比较少的场景@ConfigurationProperties
则更适用于有较多配置的情况1. 通过
@Value
注入@Value("${timeout:1000}")private int timeout;
2. 通过
@ConfigurationProperties
注入@Component@ConfigurationProperties(prefix = "teacher")@RefreshScope //如果使用反射模式,则不需要加这个注解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 + '}';}}.
步骤3:TSF 控制台下发动态配置
用户可以通过 TSF 控制台来下发动态配置。
前提条件
已经在 TSF 平台上部署了
provider-demo
和consumer-demo
应用。部署
provider-demo
的部署组的日志配置项的日志路径中包含了/tsf-demo-logs/provider-demo/root.log
,以确保打印的日志被采集后,可以通过控制台查看应用的日志。参见 日志配置项。操作步骤
如果希望修改
ProviderNameConfig
类中的providerName
的值,创建配置时,配置内容填写:provider:config:name: testname123
将配置发布到已部署
provider-demo
的部署组上,检查打印的日志中是否 name 的值已更新。如果已更新,说明更新的配置生效。provider-demo -- provider config name: testname123