搭建SpringCloudAlibaba开发环境之配置中心Nacos

搭建SpringCloudAlibaba开发环境之配置中心Nacos

  • springboot配置文件的加载顺序
  • 搭建nacos配置中心服务端
  • 搭建nacos配置中心客户端
  • 客户端读取服务端的配置信息
  • nacos配置中心-多环境配置
    • nacos配置中心服务端
    • 配置nacos客户端
    • 修改项目的启动是的配置项

springboot配置文件的加载顺序

bootstrap.properties
bootstrap.yml
application.properties
application.yml
从上到下优先级递减

搭建nacos配置中心服务端

DataId 默认是properties文件,如果要修改为yaml文件,文件已
.yaml结尾即可

在nacos配置中心配置Springboot配置文件

搭建SpringCloudAlibaba开发环境之配置中心Nacos_第1张图片

搭建nacos配置中心客户端

在pom文件中加入nacos config依赖


    4.0.0
    bygones-provider
    1.0.0-SNAPSHOT
    jar

    
        com.bygones
        bygones-dependencies
        1.0.0-SNAPSHOST
        ../bygones-dependencies/pom.xml
    

    
        
            org.springframework.boot
            spring-boot-starter-web
        

        
            org.springframework.boot
            spring-boot-starter-actuator
        

        
        
            com.alibaba.cloud
            spring-cloud-starter-alibaba-nacos-discovery
        

        
        
            com.alibaba.cloud
            spring-cloud-starter-alibaba-nacos-config
        
    


使用bootstrap.properties文件关联nacos服务端的配置中心

# 这里的应用名对应 Nacos Config 中的 Data ID,实际应用名称以配置中心的配置为准
spring.application.name=provider
# 指定查找名为 provider.yaml 的配置文件
spring.cloud.nacos.config.file-extension=yaml
# Nacos Server 的地址
spring.cloud.nacos.config.server-addr=127.0.0.1:8848

客户端读取服务端的配置信息

使用ConfigurableApplicationContext读取服务端的配置信息

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class ConfigController {
     

    /** 当nacos配置中心修改值后,可以动态的获取到修改后的值 */
    @Autowired
    private ConfigurableApplicationContext applicationContext;

    /** 每次重启服务才可以获取到nacos配置中心的值 */
    @Value("${user.names}")
    private String username;

    @GetMapping("get-config")
    public String getConfig(){
     
        return username;
    }

    @GetMapping("get-config-nacos")
    public String getConfigOfNacos(){
     
        return applicationContext.getEnvironment().getProperty("user.names");
    }
}

nacos配置中心-多环境配置

解决程序在不同环境(正式环境/开发环境)需要读取nacos配置中心
不同配置文件的问题

nacos配置中心服务端

在nacos服务端创建prod(生产)的配置文件

搭建SpringCloudAlibaba开发环境之配置中心Nacos_第2张图片

配置nacos客户端

修改bootstrap.properties文件,加入spring.profiles.active适配
nacos配置中心中不同环境的配置文件

# 适配nacos配置中心中不同环境的配置文件
spring.profiles.active=prod
# 这里的应用名对应 Nacos Config 中的 Data ID,实际应用名称以配置中心的配置为准
spring.application.name=provider
# 指定查找名为 provider.yaml 的配置文件
spring.cloud.nacos.config.file-extension=yaml
# Nacos Server 的地址
spring.cloud.nacos.config.server-addr=127.0.0.1:8848

修改项目的启动是的配置项

搭建SpringCloudAlibaba开发环境之配置中心Nacos_第3张图片
搭建SpringCloudAlibaba开发环境之配置中心Nacos_第4张图片

特别注意
在nacos配置中心的服务端与客户端的bootstrap配置文件以及项目
启动时的配置项均为prod,保证相同即可

你可能感兴趣的:(SpringCloud,spring,boot,nacos,nacos配置中心,springcloud)