zoukankan      html  css  js  c++  java
  • spring cloud alibaba

    1.简要说明

      Nacos提供了作为配置中心的功能,只需要在Nacos的控制台页面添加配置,然后在项目中配置相应的"路径"就好。

      主要分为几个步骤:

        在Nacos控制台添加配置

        在项目引入依赖

        配置Nacos上的配置的"路径"

    2.Nacos控制台配置说明

      配置管理-配置列表,可以看见我们的配置

       下图是我添加的一个配置

       Nacos的配置的完整名称路径是:命名空间+组Group名+Data Id,类似于项目+包名+类名,这样子可以对配置文件进行较好的分类管理。

      命名空间:默认存在一个命名空间public,也可以自己创建

      

     组:在新建配置的时候设置,名字自己随意取

    data id:在新建配置的时候设置,data id的值和我们项目中的配置有关,这个后面讲

      

     3.简单实例

    3.1创建模块

      

    3.2依赖

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

    完整

    <dependencies>
    
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
            </dependency>
    
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
            </dependency>
    
            <dependency>
                <groupId>com.atguigu.springcloud</groupId>
                <artifactId>cloud-api-commons</artifactId>
                <version>${project.version}</version>
            </dependency>
    
    
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
            </dependency>
    
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-actuator</artifactId>
            </dependency>
    
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-devtools</artifactId>
                <scope>runtime</scope>
                <optional>true</optional>
            </dependency>
    
            <dependency>
                <groupId>org.projectlombok</groupId>
                <artifactId>lombok</artifactId>
                <optional>true</optional>
            </dependency>
    
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-test</artifactId>
                <scope>test</scope>
            </dependency>
    
            <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>fastjson</artifactId>
                <version>1.2.62</version>
            </dependency>
        </dependencies>

    3.3配置文件

    application.yml

    spring:
      profiles:
        active: dev

    bootstrap.yml

    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格式的配置   

    为什么这里需要两个配置文件呢,这个data id有关

    现在,我们看Data id是怎么形成的

       Data id的格式如下 ${prefix}-${spring.profiles.active}.${file-extension}

      ${prefix}:默认是spring.application.name的值,也可以通过配置项 spring.cloud.nacos.config.prefix来配置

      ${spring.profiles.active} 即为当前环境对应的 profile,注意:当 spring.profiles.active 为空时,对应的连接符 - 也将不存在,dataId 的拼接格式变成 ${prefix}.${file-extension},最好不要少,这也就是上面弄了两个配置文件的原因

      ${file-extension}为配置内容的数据格式,可以通过配置项 spring.cloud.nacos.config.file-extension 来配置。目前只支持 properties 和 yaml 类型。

     

       按照我们的配置,Data Id 也就是 nacos-config-client-dev.yaml

       上面的配置,也就是去找地址为 localhost:8848的Nacos,由于我们没有配置命名空间和组,所以找的是默认的命名空间public和默认组DEFAULT_GROUP,Data id是nacos-config-client-dev.yaml的配置

    3.4主启动类

    package com.atguigu.springcloud;
    
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
    
    /**
     * @Classname NacosConfigClientMain3377
     * @Description TODO
     * @Date 2021/6/21 0021 下午 3:38
     * @Created by jcc
     */
    @SpringBootApplication
    @EnableDiscoveryClient
    public class NacosConfigClientMain3377 {
        public static void main(String[] args) {
            SpringApplication.run(NacosConfigClientMain3377.class,args);
        }
    }

    3.5业务类

    package com.atguigu.springcloud.alibaba.controller;
    
    import org.springframework.beans.factory.annotation.Value;
    import org.springframework.cloud.context.config.annotation.RefreshScope;
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.RestController;
    
    
    @RestController
    @RefreshScope //动态刷新 通过这个注解实现配置的自动刷新,但我们修改配置了,会自动刷新
    public class ConfigClientController
            {
                @Value("${config.info}")
        private String configInfo;   //读取我们在Nacos上的配置的内容 config.info
    
                @GetMapping("/config/info")
        public String getConfigInfo() {
                    return configInfo;
                }
            }
    
    
             

    3.6.在Nacos控制台创建配置

      

        Data id的值一定要对应上面项目中的配置形成的Data id的值

      Group采用默认的

      配置格式:选择YAML

      配置内容:config.info: 帅呀

    3.7启动项目

      访问http://localhost:3377/config/info,读取到了配置内容

        

    修改配置内容

    再次访问

    发现自动更新了配置内容

    4.自定义命名空间和自定义组

    4.1创建命名空间

      命名空间-新建命名空间

       id自动生成就好

      

     创建成功后

     4.2在mysp命名空间下创建配置

      

    选择命名空间为mysp,点击+新增配置

      

         Data id还是之前的不变

      Group:MY_GROUP      (自定义的组的名称)

      配置格式:YAML

      配置内容:mysp---MY_GROUP_帅呀

     4.3修改项目的配置文件

    server:
      port: 3377
    
    spring:
      application:
        name: nacos-config-client  #将会作为注册到注册中心的服务名称
      cloud:
        nacos:
          discovery:
            server-addr: localhost:8848 #配置Nacos地址
          config:
            server-addr: localhost:8848  #配置中心地址
            file-extension: yaml  #指定yaml格式的配置    也就是去配置中心3348去找yml配置文件,而application的配置active: dev,有指定了找名字为dev的
            namespace: 55b6e10a-d590-4260-83fc-60db57b47f3e
            group: MY_GROUP

      添加了两个配置内容:

        namespace: 55b6e10a-d590-4260-83fc-60db57b47f3e    命名空间的id

        group: MY_GROUP   组名
      
       这里去找的是id为55b6e10a-d590-4260-83fc-60db57b47f3e的命名空间下,组名为MY_GROUP,data id为nacos-config-client-dev.yaml的配置


    4.4重启项目
      
    访问http://localhost:3377/config/info
      

    
    
    
    
    
    
  • 相关阅读:
    SpringMvc执行流程
    Lock wait timeout exceeded; try restarting transaction解决方法
    MySQL删除复杂的重复数据的解决方案(一条数据项中包含多个值的情况)
    数据移植时递归运算查询部门及其下级所有部门的问题
    IDEA常用插件
    mybatis和mybatisPlus中解决实体类字段与数据库关键字冲突问题
    时间日期操作
    spring项目中使用MD5加密方式
    idea如何调出仪表盘
    scanf使用过程中的技巧与坑位
  • 原文地址:https://www.cnblogs.com/jthr/p/14914660.html
Copyright © 2011-2022 走看看