# pom.xml 引用

<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
    <version>${spring-cloud-alibaba.version}</version>
</dependency>
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
    <version>${spring-cloud-alibaba.version}</version>
</dependency>

# bootstrap.yml 单文件配置

spring:
  application:
    # 当前服务名称,也是当前服务的主配置名称;
    # 如项目主配置文件名称为:application.yml,则此处名称则为:application
    name: application 
  cloud:
    nacos:
      # 服务注册中心
      discovery:
        namespace: 998f1ae1-27ef-45f2-a766-6fefadaba72f
        group: origin_frame_group
        server-addr: 127.0.0.1:8848
      # 配置文件引用
      config:
        #由于在nacos配置中心创建的配置是yaml格式的,所以在此指定
        file-extension: yaml
        #默认为true,通过设置 spring.cloud.nacos.config.enabled = false 
        enabled: true 
        # 命名空间可以理解为实际场景中的开发环境,如:开发、测试、生产;
        # 主要的作用是隔离不同空间下的配置文件;
        namespace: 998f1ae1-27ef-45f2-a766-6fefadaba72f
        #Group        
        group: origin_frame_group   
        #DataId
        name: application-resource   
        server-addr: 127.0.0.1:8848
        file-extension: yaml

# bootstrap.yml 多文件配置

spring:
  application:
    name: application
  cloud:
    nacos:
      # 服务注册中心
      discovery:
        namespace: 998f1ae1-27ef-45f2-a766-6fefadaba72f
        group: origin_frame_group
        server-addr: 127.0.0.1:8848
      # 配置文件引用
      config:
        #由于在nacos配置中心创建的配置是yaml格式的,所以在此指定
        file-extension: yaml
        #默认为true,通过设置 spring.cloud.nacos.config.enabled = false 
        enabled: true 
        server-addr: 127.0.0.1:8848
        namespace: 998f1ae1-27ef-45f2-a766-6fefadaba72f
        extension-configs[0]:
          data-id: application-datasource.yml
          group: origin_frame_group
          refresh: true
        extension-configs[1]:
          data-id: application-cache.yml
          group: origin_frame_group
          refresh: true

# java 调用

@RefreshScope //即时刷新
@RestController
@RequestMapping(value = "/nacos")
public class NacosController extends BaseController {

    @Value("${spring.datasource.dynamic.datasource.master.password}")
    String password;

    @ApiLogger
    @RequestMapping(method = RequestMethod.POST, value = "/getDataSourceInfo")
    public Result getDataSourceInfo() {
        return success(password);
    }
}