zoukankan      html  css  js  c++  java
  • 同时加载多个配置集

    当微服务数量很庞大时,将所有配置都书写到一个配置文件中,显然不是太合适。对此我们可以将配置按照功能的不同,拆分为不同的配置文件。

    如下面的配置文件:

    server:
      port: 7000
    
    spring:
      datasource:
        #MySQL配置
        driverClassName: com.mysql.cj.jdbc.Driver
        url: jdbc:mysql://192.168.137.14:3306/gulimall_sms?useUnicode=true&characterEncoding=UTF-8&useSSL=false
        username: root
        password: root
    
      application:
        name: gulimall-coupon
      cloud:
        nacos:
          discovery:
            server-addr: 192.168.137.14:8848
    
    
    
    mybatis-plus:
      global-config:
        db-config:
          id-type: auto
      mapper-locations: classpath:/mapper/**/*.xml
    

      

    我们可以将,

    数据源有关的配置写到一个配置文件中:

    spring:
      datasource:
        #MySQL配置
        driverClassName: com.mysql.cj.jdbc.Driver
        url: jdbc:mysql://192.168.137.14:3306/gulimall_sms?useUnicode=true&characterEncoding=UTF-8&useSSL=false
        username: root
        password: root
    

      

    和框架有关的写到另外一个配置文件中:

    mybatis-plus:
      global-config:
        db-config:
          id-type: auto
      mapper-locations: classpath:/mapper/**/*.xml
    

      

    也可以将上面的这些配置交给nacos来进行管理。

    实例:将“gulimall-coupon”的“application.yml”文件拆分为多个配置,并放置到nacos配置中心

    1、创建“datasource.yml”,用于存储和数据源有关的配置

    spring:
      datasource:
        #MySQL配置
        driverClassName: com.mysql.cj.jdbc.Driver
        url: jdbc:mysql://192.168.137.14:3306/gulimall_sms?useUnicode=true&characterEncoding=UTF-8&useSSL=false
        username: root
        password: root
    

      

    在coupon命名空间中,创建“datasource.yml”配置

     

    2、将和mybatis相关的配置,放置到“mybatis.yml”中

    mybatis-plus:
      global-config:
        db-config:
          id-type: auto
      mapper-locations: classpath:/mapper/**/*.xml
    

      

    3、创建“other.yml”配置,保存其他的配置信息

    server:
      port: 7000
    
    spring:
      application:
        name: gulimall-coupon
      cloud:
        nacos:
          discovery:
            server-addr: 192.168.137.14:8848
    

      

    现在“mybatis.yml”、“datasource.yml”和“other.yml”共同构成了微服务的配置。

    4、修改“gulimall-coupon”的“bootstrap.properties”文件,加载“mybatis.yml”、“datasource.yml”和“other.yml”配置

    spring.cloud.nacos.config.extension-configs[0].data-id=mybatis.yml
    spring.cloud.nacos.config.extension-configs[0].group=dev
    spring.cloud.nacos.config.extension-configs[0].refresh=true
    
    spring.cloud.nacos.config.extension-configs[1].data-id=datasource.yml
    spring.cloud.nacos.config.extension-configs[1].group=dev
    spring.cloud.nacos.config.extension-configs[1].refresh=true
    
    
    spring.cloud.nacos.config.extension-configs[2].data-id=other.yml
    spring.cloud.nacos.config.extension-configs[2].group=dev
    spring.cloud.nacos.config.extension-configs[2].refresh=true
    

      

    "spring.cloud.nacos.config.ext-config"已经被废弃,建议使用“spring.cloud.nacos.config.extension-configs”

    5、注释“application.yml”文件中的所有配置

    6、重启“gulimall-coupon”服务,然后访问:http://localhost:7000/coupon/coupon/test

    小结:

    1)、微服务任何配置信息,任何配置文件都可以放在配置中心;

    2)、只需要在bootstrap.properties中,说明加载配置中心的哪些配置文件即可;

    3)、@Value, @ConfigurationProperties。都可以用来获取配置中心中所配置的信息;

    4)、配置中心有的优先使用配置中心中的,没有则使用本地的配置。

  • 相关阅读:
    vue cli3使用官方方法配置sass全局变量报错ValidationError: Invalid options object. Sass Loader has been initialised using an options object that does not match the API schema.
    面试必备:HashMap、Hashtable、ConcurrentHashMap的原理与区别
    Lombok介绍、使用方法和总结
    位运算
    【ZooKeeper系列】3.ZooKeeper源码环境搭建
    【ZooKeeper系列】2.用Java实现ZooKeeper API的调用
    【ZooKeeper系列】1.ZooKeeper单机版、伪集群和集群环境搭建
    弄明白CMS和G1,就靠这一篇了
    面试官,不要再问我三次握手和四次挥手
    【面试必备】小伙伴栽在了JVM的内存分配策略。。。
  • 原文地址:https://www.cnblogs.com/vincentmax/p/14372306.html
Copyright © 2011-2022 走看看