开发者学堂课程【精通 Spring Cloud Alibaba:本地应用读取 Nacos 配置中心】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/634/detail/10087
本地应用读取 Nacos 配置中心
内容介绍:
一、本地应用读取 Nacos 配置中心
二、bootstrap 与 application 区别
一、本地应用读取 Nacos 配置中心
继上节现在在 nacos 服务器中已经存放了配置文件,那么此时怎么读取配置文件?
这时需要引入依赖
在 mayikt_nacos_client 中引入代码:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
<version>0.2.2.RELEASE</version>
</dependency>
然后同时开启项目,输入
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
<version>0.2.2.RELEASE</version>
</dependency>
第一段代码是整合 config,加入注释
<!-- nacos 整合 config -->
而第二段代码表示做服务的注册与发现,加入注释
<!-- nacos 整合 注册中心 -->
现在再看 NacosController.java 中有
@RestController
@SpringBootApplication
pubilc class NacosController {
@Value(
“${mayikt.name}”)
private String userName;
Config 也整合完成,那怎么去连接呢
举例:在 application.yml 中输入
cloud:
nacos:
###注册中心
discovery:
server-addr: 127.0.0.1
:8848
###配置中心
config:
Server-addr: 127.0.0.1:8848
部署好之后运行 NacosController.java
发现存在一个报错异常
试着去掉 @Value(“${mayikt.name}”),运行错误还在,试着也去掉 nacos 整合 config 的代码,再运行,运行成功,可以得知错误与 config 有关,现在恢复 @Value(“${mayikt.name}”)
另外还有一些小配置
group: DEFAULT_GROUP
file-extension: properties
然后再重新把项目 build 后运行,发现读不到,先去掉 mayikt: name: 每特教育|蚂蚁课堂牛逼~~ 再次运行发现新的报错
一旦把这样一个配置加上报错是 nacos 异常,删除报错是找不到配置文件
所以注意:
nacos 本地如果也配置的话,可能在启动的时候会抛出异常
因为不知道是读取本地还是服务器端,有冲突
那么怎么解决找不到 mayikt.name 配置文件的错误呢?
找不到情况下,说明配置好文件未生效 在 resources 下建立 bootstrap.yml 文件
然后将配置拷贝到 bootstrap.yml 中
spring
:
application:
##服务器的名称
name: mayikt-nacos-client
cloud:
nacos:
###注册中心
discovery:
server-addr: 127.0.0.1:8848
###配置中心
config:
server-addr:127.0.0.1:8848
group: DEFAULT_GROUP
file-extension: properties
复制完后,再运行 NacosController,无报错
二、Bootstrap 与 application 区别
Bootstrap 属于整个应用程序配置文件,最先被加载。
bootstrap.yml 用于应用程序上下文的引导阶段。
application.yml 由父 Spring ApplicationContext 加载。