bootstrap项目Nacos (四):SpringCloud 项⽬中接⼊Nacos 作为配置中⼼
前⾔
通过前两篇⽂章:
相信⼤家已经对Nacos 作为注册中⼼的基本使⽤已经有了⼀定的了解。
然⽽,Nacos 远远不⽌于此,本⽂我们来看⼀下Nacos 作为在SpringCloud 中的使⽤我的环境
Windows10JDK8
SpringCloud :Finchley.RELEASE SpringBoot :2.0.4.RELEASE
spring-cloud-alibaba-dependencies :0.2.2.RELEASE Nacos-server :1.0.1
本⽂的项⽬Demo 继续沿⽤之前⽂章中的聚合⼯程,若⼩伙伴还没有之前的环境,可⾄中下载启动Nacos-Server 进⼊bin ⽂件夹(⽬录:nacos-server-1.0.1\nacos\bin ),直接双击执⾏d ⽂件,这⾥具体的启动细节就不再说明
新建配置
在Nacos-Server 中新建配置,其中Data ID 它的定义规则是:prefix 默认为 的值,也可以通过配置项 来配置。
spring.profile.active 即为当前环境对应的 ,可以通过配置项 来配置。file-exetension 为配置内容的数据格式,可以通过配置项 来配置。⽬前只⽀持 和 类型。
注意:当 spring.profile.active 为空时,对应的连接符 - 也将不存在,dataId 的拼接格式变成 ${prefix}.${file-extension}
这⾥我创建Data Id 为的配置⽂件,其中Group 为默认的,配置⽂件的格式也相应的选择,其内添加配置,如图所⽰
创建应⽤
1、在聚合⼯程Nacos 下新建Module ,创建⼀个名为nacos-config 的⼦⼯程,其l ⽂件内容如下
2、创建配置⽂件名为,注意是 ,⽽不是或者其他。原因如下
Nacos 同springcloud-config ⼀样,在项⽬初始化时,要保证先从配置中⼼进⾏配置拉取,拉取配置之
后,才能保证项⽬的正常启动。springboot 中配置⽂件的加载是存在优先级顺序的,bootstrap 优先级⾼于application
这⾥的配置⽂件类型可以根据个⼈习惯选择,我这⾥⽤的时yml 类型,配置内容如下
配置中⼼Nacos ${prefix}-${spring.profile.active}.${file-extension}
spring.application.name spring.fig.prefix profile spring.profile.active spring.fig.file-extension properties l DEFAULT_GROUP fig=hello_nacos <?xml version="1.0" encoding="UTF-8"?>
<project xmlns="/POM/4.0.0" xmlns:xsi="/2001/XMLSchema-instance"
xsi:schemaLocation="/POM/4.0.0 /xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<artifactId>Nacos</artifactId>
<groupId>com.study.www</groupId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<groupId>com.larscheng.www</groupId>
<artifactId>nacos-config</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>nacos-config</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
application:
name: nacos-config
可以看到必须可少的配置项指定注册中⼼的地址,如果你不需要注册该服务,也可以去掉该项,并删除discovery 依赖指定配置中⼼的地址
指定配置中⼼中配置⽂件的格式
上⾯的配置是为了保证服务的正常注册和配置获取,以及配置的正确性
3、创建对外接⼝来从nacos 中读取配置,NacosConfigApplication.java 修改如下其中通过注解,去读取key 为的配置的值,并通过/getValue 接⼝返回。
加⼊注解,可以使当前类下的配置⽀持动态更新。
到此代码部分的⼯作已经完成
启动测试
保证Nacos-Server 已经启动
检查配置⽂件是否已经添加
启动nacos-config 项⽬
启动成功后在Nacos 控制台中可以看到我们注册的服务
hello_nacos
此时说明已经成功读取到配置,下⾯我将Nacos-Server 上的配置修改为,看看能否动态更新
hello_lars
可以看到我通过Nacos-server 的控制台进⾏配置的修改,客户端服务也相应的进⾏热更新。
总结
通过上⾯的测试,可见Nacos 做配置中⼼,在SpringCloud 项⽬中,也可以做到⽆缝衔接,切换到Nacos 可以说知识修改配置的问题,成本也很低项⽬的其他配置不变,只需要指定配置中⼼地址,同时将配置⽂件外部管理。
参考
⽂章作者:
⽂章链接: 本⽂⾸发于个⼈博客:
发布⽅式:
版权声明: 本博客所有⽂章除特别声明外,均采⽤ CC BY-NC-SA 4.0 许可协议。转载请注明来⾃ LarsCheng's Blog ! name: nacos-config
cloud:
nacos:
discovery:
server-addr: 127.0.0.1:8848
config:
server-addr: 127.0.0.1:8848
file-extension: yml
spring.application.name
spring.cloud.nacos.discovery.server-addr spring.fig.server-addr file-extension DataID @SpringBootApplication
@EnableDiscoveryClient
@RestController
@RefreshScope
public class NacosConfigApplication {
public static void main(String[] args) {
SpringApplication.run(NacosConfigApplication.class, args);
}
@Value("${fig}")
private String config;
@RequestMapping("/getValue")
public String getValue() {
return config;
}
}
@Value nacosconfig @RefreshScope hello_lars nacos-config
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论