目录
一、nacos入门之配置文件application和bootstrap优先级问题
出现问题:由于bootstrap的优先级高,所以最终返回页面的内容本应该是:
1、nacos入门之配置文件application和bootstrap优先级问题
application:
server:
port: 8081
spring:
application:
name: user-service
datasource:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://localhost:3306/cloud_user?useSSL=false
username: root
password: root
cloud:
nacos:
discovery:
server-addr: localhost:8848 # 连接nacos注册中心
cluster-name: BJ
ephemeral: false # 设置为非临时实例
conf:
name: 张三
desc: 这是配置在application.ymlbootstrap:
spring:
application:
name: user-service
cloud:
nacos:
config:
server-addr: localhost:8848
file-extension: yamlConfigController:
import com.itheima.user.domain.Conf;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class ConfigController {
@Value("${conf.name}")
private String name;
@Value("${conf.desc}")
private String desc;
@GetMapping("/config1")
public Conf config(){
Conf conf = new Conf();
conf.setName(name);
conf.setDesc(desc);
return conf;
}
}nacos配置:

出现问题:由于bootstrap的优先级高,所以最终返回页面的内容本应该是:
{"name":"李四","desc":"这是配置在nacos中的"}但是,事实并没有,返回的内容没变,仍然是application中配置的 张三!!!
原因居然是:!!!!!!!
解决:没有添加config依赖
?汗!!!!!
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>2、Nacos入门之热部署
局部方式
使用@RefreshScope注解标注在配置信息的类上

全局方式
1、将@ConfigurationProperties注解加到配置读取到的对象上

2、在需要使用的配置类中注入配置对象

多环境配置
nacos中新建配置

指定环境(一一对应)

配置的优先级

环境隔离
一个项目模块众多,放置在一起不易管理,显得臃肿。
环境隔离可以简单理解为:不同类别的配置文件放在不同的目录中

创建命名空间

创建配置信息

读取配置信息
spring:
application:
name: user-service
# profiles:
# active: test # 指定环境
cloud:
nacos:
config:
server-addr: localhost:8848 # nacos 配置中心地址
file-extension: yaml # 文件扩展名
namespace: f81a11fe-73f4-4dff-b70d-04009fa36710 # 指定namespace的id
group: USER_GROUP # 指定组名


版权声明:本文为m0_72649810原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。