问题:
原理:
启动Springboot的时候。去读取配置中心的配置文件。
在naco添加一个配置文件。DataId名称 和 项目配置文件中要进行对应。
DataId的格式为: ${prefix}-${spring.profile.active}.${file-extension}
prefix prefix 默认是spring.application.name 也可以用 spring.cloud.nacos.config.prefix 重新指定
spring.profile.active 对应各个环境, test rd pro
file-extension 后缀 properties 和 yaml。
文档:
nacos官网:
步骤
1.关于下载和启动nacos就先看这个 https://juejin.cn/user/4001878054538839 的1-2步
2.在配置中心添加一个配置文件
3.搭建一个项目,并引用nacos
4.编写配置配置文件
2.在配置中心添加一个配置文件
DataId的配置规则:
DataId的格式为: ${prefix}-${spring.profile.active}.${file-extension}
prefix prefix 默认是spring.application.name 也可以用 spring.cloud.nacos.config.prefix 重新指定
spring.profile.active 对应各个环境, test rd pro 默认无
file-extension 后缀 properties 和 yaml。默认properties
这里配置的DataId为nacos-config. 为了简单使用。把项目的spring.application.name的属性也配置为nacos-config
配置了一个server.prot=9999 用于启动测试。
3.搭建一个项目,并引用nacos
只需要引入相关依赖就好了。
注意Springboot,Springcloud,SpringcloudAlibaba对应的版本。
还引入了Nacos的配置模块,注意这里是nacos-config, 不是nacos-discovery。
说明配置中心和服务注册发现可以分开使用。
<!--springboot版本-->
<version>2.0.5.RELEASE</version>
<!---->
<dependencyManagement>
<dependencies>
<!--F版本-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Finchley.SR4</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!--SpringCloudAlibaba还没正式归入到cloud版本里面去,所以需要额外添加-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>2.0.1.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<!--nacos作为配置中心-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
4.编写配置配置文件
注意。这里要使用的是bootstrap.properties,不是默认的application.properties
项目启动前 优先加载bootstrap 其次才加载 application,
配置spring.application.name=nacos-config属性。
注意这里nacos-config和nacos里的DataId一致。注意看DataID的格式。
配置nacos配置中心的地址。 区分config和discovery
注意这里是用的
spring.cloud.nacos.config.server-addr=127.0.0.1:8848
不是
spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848
这里没有配置端口,因为刚刚在nacos上配置了一个文件。启动项目。查看是否读取到了配置中心的文件。
可以发现。已经读取到了配置文件的属性。
这样的话。就可以在配置中心配置mysql,redis等连接属性。
这样在启动的时候。就可以直接读取到了nacos中的属性。
总结:
1.要在bootstrap配置文件中配置nacos相关属性。
2.理解nacos的DataId的规则。
3.别把nacos的配置中心和服务注册搞混了。
4.当你需要读取多个配置文件的时候。
spring.cloud.nacos.config.shared-dataids= xxx.properties,xxx.properties
5.或者多个项目读取一个配置文件的时候,重新指定DataId就可以了,不用spring.application.name属性
spring.cloud.nacos.config.prefix=xxxx