zoukankan      html  css  js  c++  java
  • 业务网关-配置

    配置类图

    将项目中的配置聚合在一起,便于管理。

    设计

    下面是整理之后的与配置相关的数据对象关系图,主要分为后台管理以及网关配置相关。

    实现

    spring对于属性的注入方面主要有以下2种方式:

    • 单一属性方式,@Value

    • 批量属性方式,@ConfigurationProperties

    上面2种方式各有特点

     @Value@ConfigurationProperties
    功能 单一属性配置 批量属性配置
    是否支持松散绑定 不支持 支持
    是否支持SPEL 支持 不支持
    是否支持JSR303 不支持 支持
    是否支持复杂类型 不支持 支持

    diablo网关选择了批量属性方式,以对象的方式呈现配置。主要为是后台管理相关配置以及网关相关配置,然后还有一些公共的中间件相关的配置:redis,zookeeper,apollo等。

    1、配置入口:DiabloConfig

    创建一个DiabloConfig的类,解释下类上面的注解:

    • @Data,这是一个语法糖,用来生成属性的get,set方法
    • @Configuration,表明这是一个配置类
    • @Component,表明这是一个组件,会在其它地方被注入依赖
    • @ConfigurationProperties,批量属性注入。

    prefix是指在application.yml中的属性前缀;ignoreInvalidFields是指当属性匹配发生错误时是否忽略,如果配置成false,有可能会抛错误。

    
    
    @Data
    @Configuration
    @Component("diabloConfig")
    @ConfigurationProperties(prefix = "diablo",ignoreInvalidFields = true)
    public class DiabloConfig implements Serializable {
    
        /**
         * 后台管理配置
         */
        private Admin admin;
    
        /**
         * 网关配置
         */
        private Web web;
    
    }
    

    2、application.yml :配置上对应的属性值

    
    diablo:
      web:
        keepAliveUpstream:
          scanTimeMillisecond: 1000
        disruptor:
          bufferSize: 2048
          threadSize: 1
        accessLog:
          enable: true
          percentagy: 100
        redis:
          master: common
          nodes: 192.168.1.10:26379
          pwd: 123
        sync:
          strategy: http
          url: http://localhost:8887
    

    3、使用

    只需要在使用的地方注入上面的配置类组件即可开始工作。

    
     @Autowired
     private DiabloConfig diabloConfig;
    

    网关项目开源

    以上内容基于业务网关的一个小模块,详细请看这里:diablo在这里

  • 相关阅读:
    ansible用普通用户执行root权限的命令 + script模块
    screen 实用操作
    Kibana did not load properly
    1500元让我写一个api接口!没问题
    python实现四种出行路线规划(公交、步行、驾车、骑行)
    35行代码下载任意网页的图片
    Comparison of long-read sequencing technologies in the hybrid assembly of complex bacterial genomes
    A single-molecule long-read survey of the human transcriptome
    Long-read sequencing and de novo assembly of a Chinese genome 一个中国人基因组的长读测序和重新组装
    Combination of short-read, long-read, and optical mapping assemblies reveals large-scale tandem repeat arrays with population genetic implications
  • 原文地址:https://www.cnblogs.com/ASPNET2008/p/13419965.html
Copyright © 2011-2022 走看看