zoukankan      html  css  js  c++  java
  • springboot配置文件解析

    一 前言

    本篇是springboot的配置文件介绍篇,也是基础入门篇,今天补上,springboot系列基本已将齐全;

    公众号:知识追寻者

    知识追寻者(Inheriting the spirit of open source, Spreading technology knowledge;)

    二 springboot配置文件详解

    2.1 配置文件概述

    springboot的配置文件分为properties 和 yml 两种格式,其全局配置文件放在resources目录下,这2种配置文件 的本质与效果都一致,但知识追寻者更喜欢yml配置方式,原因是其语法简单,看桑去很简洁,可读性强;其配置文件名为 application.yml 或者 application.properties;

    2.2 配置文件语法

    properties 与 yml 语法 本质上都是 键值对(key-value)形式,所以很好理解,下面将介绍不同数据类型的语法;

    基本语法就是直接写 key - value ;比如数字类型,字符串类型,布尔数据类型 写法形式如下

    properties 语法示例,key 和value 之间使用 = 形成关系

    name = zszxz
    

    yml 语法示例, key 和value 之间使用 : 形成关系

    name: zszxz
    

    在 java 类中使用@Value注解配合占位符合 ${}读取配置文件属性

    示例

    @Value("${name}")
    private String name;
    

    注意,不建议使用 双引号,因为需要转义;

    下面示例中将都使用myl语法;

    map 写法示例如下,注意子属性与父属性之间相差2个空格;

    person:
      name: zszxz
      age:18
    

    list 写法示例

    support:[png,text,pdf]
    

    2.3 使用 @ConfigurationProperties 读取配置文件属性

    在文件上传和下载的场景中,为了使代码更具有可读性,就可以使用此方式,当然知识追寻者这边给出的是简单的示例

    在 配置文件中定义

    # 文件参数
    zszxz:
      # 保存路径
      savePath: C:/mydata/generator
      # 下载路径
      downloadpath: C:/mydata/generator
    

    使用 @Configuration 声明 FileConfig 为配置类, 使用 @ConfigurationProperties 注解 读取配置文件 前缀为 zszxz 的属性;

    @Configuration
    @ConfigurationProperties(prefix = "zszxz")
    public class FileConfig {
        // 文件保存路径
        private String savePath;
        // 文件下载路径
        private String downloadpath;
        // 省略 set 和 get
    }
    

    这样配置完成就可以在其它java类中使用 spring的 IOC 注入对象方式进行属性调用;

    比如

    @Autowired
    FileConfig fileConfig;
    
    private void init(){
    	String path = fileConfig.getSavePath();
    }
    

    2.4 配置文件的优先级

    如果一个工程中存在多个配置文件,高优先级的配置文件会覆盖低优先级的配置文件

    1. 工程根目录的config目录:file:./config/
    2. 工程根目录:file:./
    3. 类路径的config目录:classpath:/config/
    4. 类路径:classpath:/ (推荐使用)

    2.5 配置文件外部部署

    在jar包所在目录新建config文件夹,然后放入配置文件;或者直接将配置文件在jar包的同级目录

    当然还可以指定配置文件的位置

     java -jar myproject.jar --spring.config.name=myproject
    

    或者

    java -jar myproject.jar --spring.config.location=classpath:/default.properties,classpath:/override.properties
    

    参考链接

    https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#boot-features-external-config-application-property-files

  • 相关阅读:
    死磕 java线程系列之线程池深入解析——定时任务执行流程
    死磕 java线程系列之线程池深入解析——未来任务执行流程
    死磕 java线程系列之线程池深入解析——普通任务执行流程
    面试 LockSupport.park()会释放锁资源吗?
    死磕 java线程系列之线程池深入解析——生命周期
    死磕 java线程系列之线程的生命周期
    《动手学深度学习》系列笔记—— 1.2 Softmax回归与分类模型
    《动手学深度学习》系列笔记——1.1 线性回归
    【Python学习笔记】2. 高级变量类型
    【Python学习笔记】1. Python基础知识
  • 原文地址:https://www.cnblogs.com/zszxz/p/13336505.html
Copyright © 2011-2022 走看看