nacos注册中心配置中心抽取静态配置类
0.工程目录
1.springboot,springcloud,springcloudalibaba版本适配
pom文件
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.7.1</version>
<relativePath/>
</parent>
<spring-cloud.version>2021.0.1</spring-cloud.version>
<spring-cloud-alibaba.version>2021.0.1.0</spring-cloud-alibaba.version>
<dependencyManagement>
<dependencies>
<!--要注意 spring boot 与spring cloud的版本适配-->
<!--整合spring cloud-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!--整合spring cloud alibaba-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>${spring-cloud-alibaba.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<!--nacos-config 配置中心-自带动态刷新-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
<!--nacos-discovery 注册中心-服务发现与注册-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<!--spring cloud2.4版本之后默认不加载加载bootstrap.yml文件,所以需要该依赖-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bootstrap</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--web + actuator-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.24</version>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<version>2.7.0</version>
<scope>test</scope>
</dependency>
<!--SpringCloud ailibaba sentinel-datasource-nacos 后续sentinel做持久化用到-->
<dependency>
<groupId>com.alibaba.csp</groupId>
<artifactId>sentinel-datasource-nacos</artifactId>
</dependency>
<!--SpringCloud ailibaba sentinel -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba.csp</groupId>
<artifactId>sentinel-transport-simple-http</artifactId>
</dependency>
</dependencies>
bootstrap.yml
spring:
profiles:
active: local
bootstrap-local.yml
server:
port: 8080
spring:
application:
name: product-recommendation
cloud:
nacos:
discovery:
server-addr: localhost:8880 #服务注册中心地址
namespace: f536551d-470c-473a-beb7-a5ebc6056b61
group: product-recommendation
config:
server-addr: localhost:8880 #配置中心地址
file-extension: yaml #指定yaml格式的配置
namespace: f536551d-470c-473a-beb7-a5ebc6056b61
group: product-recommendation
CloudalibabaConfigNacosClient3377Application.java
@EnableDiscoveryClient
@SpringBootApplication
public class CloudalibabaConfigNacosClient3377Application {
public static void main(String[] args) {
SpringApplication.run(CloudalibabaConfigNacosClient3377Application.class, args);
System.out.println("启动成功");
}
}
ConstantUtil .java
@Component
@Data
@ConfigurationProperties(prefix = "constant")
public class ConstantUtil implements Serializable {
public static String CUST_GROUP_CONF_UPLOAD_PATH;
public void setCustGroupConfUploadPath(String custGroupConfUploadPath) {
ConstantUtil.CUST_GROUP_CONF_UPLOAD_PATH = custGroupConfUploadPath;
}
}
从配置中心加载到constant相关属性后,赋值给类变量
ConfigController .java
@RestController
public class ConfigController {
@GetMapping("/config/info")
public String getConfigInfo() {
return ConstantUtil.CUST_GROUP_CONF_UPLOAD_PATH;
}
}
nacos客户端配置文件 :
配置文件详情 :
如果觉得有用,点个赞鼓励一下我吧,谢谢