zoukankan      html  css  js  c++  java
  • SpringBoot中的配置文件分离

    0.背景

    idea中新建好springboot项目后,默认的配置文件是放在resource目录下的,这个时候进行打包,配置文件会打包到jar中,每次更新配置信息都需要重新打jar包部署,比较麻烦.

    目的:将配置文件分离,其他位置存放好配置文件后,在启动jar时指定配置文件,实现灵活切换

    1.默认的配置文件

    1.1 application.properties

    SpringBoot程序默认从application.properties或者application.yaml读取配置,且application.properties>application.yaml

    外置配置文件

    Spring程序会按优先级从下面这些路径来加载application.properties配置文件

    • 当前目录下的/config目录
    • 当前目录
    • classpath里的/config目录
    • classpath 跟目录

    eg:在jar所在目录新建config文件夹,然后放入配置文件,或者直接放在配置文件在jar目录.

    1.2 application-xx.properties

    不同环境设定一个配置文件,带application-前缀都会识别成默认的.

    eg:application-dev.properties、application-prod.properties

    1.3 启动命令

    java -jar xx.jar --spring.profiles.active=dev
    

    1.4 扩展

    你也可以直接在application.properties中指定使用哪一个文件

    spring.profiles.active = dev
    

    启动时,会自动根据填写的参数值,读取对应的配置文件进行加载.

    image-20210816172329892

    2.自定义的配置文件

    2.1 启动时指定

    多个配置文件用英文逗号分隔

    # 需要在classpath目录中
    java -jar xxx.jar --spring.config.location=classpath:/自定义配置文件1.properties,classpath:/自定义配置文件2.properties
    # 绝对路径指定
    java -jar xxx.jar --Dspring.config.location=绝对路径自定义配置文件3.properties 
    

    2.2 代码中指定

    2.2.1 在application.properties文件中指定一个文件路径

    eg:路径配置如下

    xx.pathConfig.path = D:/Projects/GitWorks/path.properties
    

    2.2.2 编写加载类

    这样启动时就会先加载出application.properties中${xx.pathConfig.path}的值,然后加载出这个定义的配置文件.

    只要修改application.properties中配置的自定义文件路径,就可以切换到不同的配置文件.

    package xx.config;
    
    import org.springframework.context.annotation.Configuration;
    import org.springframework.context.annotation.PropertySource;
    
    /**
     * @Description: 请求详细地址的配置文件: icbc-path.properties
     * @Class: PathConfig
     * @Author: Yiang37
     * @Date: 2021/7/15 10:00
     * @Version: 1.0
     */
    // file绝对路径.
    // @PropertySource("classpath:/xx.properties")这种是classpath相对路径
    @PropertySource(value = {"file:${xx.pathConfig.path}"}, encoding="utf-8")
    @Configuration
    public class PathConfig {
    }
    

    2.2.3 启动命令

    java -jar xx.jar --spring.profiles.active=dev
    
  • 相关阅读:
    Elasticsearch使用记录
    Python程序打包成exe的一些坑
    Django的基础操作总结
    社会工程学的基本理论和基本应用
    ceph分布式存储系统初探
    简单个人信息安全模型
    基于socket.io客户端与服务端的相互通讯
    使用node建立本地服务器访问静态文件
    java 03 数组
    java 04 面向对象
  • 原文地址:https://www.cnblogs.com/yang37/p/15149016.html
Copyright © 2011-2022 走看看