【SpringCloud】nacos-服务配置

nacos服务配置与bus一样,bus可以从github或者gitee中获取文件信息。而nacos则可以从nacos配置管理中创建配置,并获取其配置信息。nacos服务配置具体步骤如下:

  1. 在nacos界面配置团里中创建配置
    登录http://localhost:8848/nacos,点击新建按钮,进入创建界面。注意:Data Id是有命名规范的,其规范参照nacos官网,同时,配置内容中config:后面必须打上一个空格,不然配置模块无法启动!!后缀必须是yaml,切记不能是yml,不然配置模块也不能正常启动!!
    在这里插入图片描述
  2. 创建配置模块3377

【SpringCloud】nacos-服务配置_第1张图片

  1. 导包
<dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>

注意:这里是config,说明这是个nacos的服务配置模块,在服务注册发现模块中,导入的是discovery包。

  1. 写配置
    当配置nacos配置服务时,应该创建名为bootstrap.yml的配置文件,根据官网可知,我们需要配置激活环境,因此这个模块中还存在application.yml配置文件。

bootstrap.yml配置:

# nacos配置
server:
  port: 3377

spring:
  application:
    name: nacos-config-client
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848 #Nacos服务注册中心地址
      config:
        server-addr: localhost:8848 #Nacos作为配置中心地址
        file-extension: yaml #指定yaml格式的配置
#        group: DEV_GROUP
#        namespace: 7d8f0f5a-6a53-4785-9686-dd460158e5d4


# ${spring.application.name}-${spring.profile.active}.${spring.cloud.nacos.config.file-extension}
# nacos-config-client-dev.yaml

# nacos-config-client-test.yaml   ----> config.info

application.yml配置:

spring:
  profiles:
    active: dev # 表示开发环境
    #active: test # 表示测试环境
    #active: info

  1. 主程序类
@SpringBootApplication
@EnableDiscoveryClient
public class NacosConfigClientMain3377 {
    public static void main(String[] args) {
        SpringApplication.run(NacosConfigClientMain3377.class, args);
    }
}

  1. 业务类
    主要有controller层,用于获取nacos的配置信息。
@RestController
@RefreshScope
public class ConfigClientController {
    @Value("${config.info}")
    private String configInfo;

    @GetMapping("/config/info")
    public String getConfigInfo() {
        return configInfo;
    }
}
  1. 测试
    输入http://localhost:3377/config/info即可查看获取的配置信息。
    在这里插入图片描述
    注:配置文件要配置的内容nacos官网都有,按照步骤来就行了!

总结:

1.bootstrap中使用config配置是从nacos配置中拉取数据并和application中的配置做并集操作,当两者有重复配置时,由于bootstrap优先级高于application,因此以bootstrap中配置为准。

2.@value注解中的${}使用的是配置文件中的属性。

3.bootstrap中config:中的配置用于定位nacos配置中心的配置文件,从而将对应配置文件拉取下来

4.bootstrap先于application加载。
5.优先级关系:从nacos配置中心拉取的配置优先级最高;如果配置写在bootstrap.yml文件中,同样的配置在application.yml文件中也存在,则application中的配置会覆盖bootstrap中的配置。

你可能感兴趣的:(java,springcloud)