Spring Boot 配置 jar 包外面的 Properties 配置文件

一、概述

Properties 文件是我们可以用来存储项目特定信息的常用方法。理想情况下,我们应该将其保留在 jar 包之外,以便能够根据需要对配置进行更改。

二、使用默认位置

按照惯例,Spring Boot 按以下优先顺序在四个预定位置查找外部化配置文件 — application.propertiesapplication.yml

  • 当前目录的 /config 子目录
  • 当前目录
  • 一个类路径 /config
  • 类路径根

因此, application.properties 中定义并放置在当前目录的 /config 子目录中的属性将被加载。 这也会在发生冲突时覆盖其他位置的属性。

三、使用命令行

如果上述约定对我们不起作用,我们可以 直接在命令行中配置位置

java -jar app.jar --spring.config.location=file:///Users/home/config/jdbc.properties

我们还可以传递应用程序搜索文件的文件夹位置:

java -jar app.jar --spring.config.name=application,jdbc --spring.config.location=file:///Users/home/config

在那里,我们可以使用 -D 参数:

mvn spring-boot:run -Dspring.config.location="file:///Users/home/jdbc.properties"

四、使用环境变量

现在假设我们不能更改启动命令。

很棒的是 Spring Boot 还会读取环境变量 SPRING_CONFIG_NAMESPRING_CONFIG_LOCATION

export SPRING_CONFIG_NAME=application,jdbc
export SPRING_CONFIG_LOCATION=file:///Users/home/config
java -jar app.jar

请注意,仍将加载默认文件。但是 环境特定的属性文件优先以防发生属性冲突。

如我们所见,我们必须在应用程序启动之前定义 spring.config.namespring.config.location 属性,因此在 application.properties 文件(或 YAML 对应文件)中使用它们将没有影响。

Spring Boot 在 2.4.0 版本中修改了属性的处理方式。

与此更改一起,团队引入了一个新属性,允许直接从应用程序属性导入其他配置文件:

spring.config.import=file:./additional.properties,optional:file:/Users/home/config/jdbc.properties

如果我们想要编程访问,我们可以注册一个 PropertySourcesPlaceholderConfigurer bean:

public PropertySourcesPlaceholderConfigurer propertySourcesPlaceholderConfigurer() {
    PropertySourcesPlaceholderConfigurer properties =
      new PropertySourcesPlaceholderConfigurer();
    properties.setLocation(new FileSystemResource("/Users/home/conf.properties"));
    properties.setIgnoreResourceNotFound(false);
    return properties;
}

在这里,我们使用 PropertySourcesPlaceholderConfigurer 从自定义位置加载属性。

七、从 Fat Jar 中排除文件

Maven Boot 插件会自动将 src/main/resources 目录下的所有文件包含到 jar 包中。

如果我们不想让某个文件成为 jar 的一部分,我们可以使用一个简单的配置来排除它:


            src/main/resources
            true

                **/conf.properties

在这个例子中,我们过滤掉了 conf.properties 文件,使其不包含在生成的 jar 中。

八、小结

通常,我们只需要将属性值放在正确的文件和位置。但我们也可以使用 Spring 的 Java API 进行更多控制。

Original: https://www.cnblogs.com/hunterzhang/p/16789495.html
Author: hunterzhang
Title: Spring Boot 配置 jar 包外面的 Properties 配置文件



相关阅读

Title: windows10安装使用conda

windows10安装conda

1.Anaconda 基本介绍

[1] Anaconda是一个用于科学计算的Python发行版,支持 Linux、 Mac、Windows系统,提供了包管理与环境管理的功能,可以很方便地解决多版本python并存、切换以及各种第三方包安装问题。
[2] Anaconda是一个打包的集合,里面预装好了conda、某个版本的python、众多packages、科学计算工具等,其中conda是用来进行包管理与环境管理的工具/命令。
[3] Miniconda版本,只包含最基本的内容python与conda,以及相关的必须依赖项,占用的空间相对较小。

2.下载conda

选择自己合适的版本下载(建议最新版)
https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/

Spring Boot 配置 jar 包外面的 Properties 配置文件

; 3.安装conda

  1. 安装过程如果没有选择添加环境变量,那么需要手动添加一下环境变量
  2. 安装之后在cmd命令行查看conda命令是否可以正常使用
    Spring Boot 配置 jar 包外面的 Properties 配置文件

4.配置conda

  1. 添加国内源
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/

5.常用命令

  1. 查看所有的环境:
conda env list
  1. 创建新环境,指定环境名:env_name Python版本:env_py:
conda create -n env_name python=env_py
  1. 进入环境 :
conda activate env_name
  1. 退出当前环境:
conda deactivate
  1. 删除当前环境:
conda remove -n env_name --all

6.补充

  1. win10 anaconda无法使用activate激活环境

    首先在终端输入conda –version查看自己的anaconda版本。
    Conda版本大于等于4.6
    解决方法如下:
    用Win + X 组合键调出PowerShell 管理员模式
    输入命令 conda init powershell
    关闭当前powershell窗口,重新打开一个powershell窗口输入 conda activate 环境名测试。

Original: https://blog.csdn.net/weixin_44065078/article/details/121098995
Author: 橙子icon
Title: windows10安装使用conda

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/363571/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • Flask部署云服务器(Flask+Nginx+uwsgi)

    Flask部署云服务器(Flask+Nginx+uwsgi) 1. 下载python项目管理器 1.1 再宝塔软件商店中下载 python项目管理器和 nginx:1.2 安装py…

    Python 2023年1月6日
    053
  • Python数据处理中常见的案例

    判断文件是否存在: import os import pandas as pd MarkTest_path = dest_path+’\\’+’MarkTest.csv’ if n…

    Python 2022年12月30日
    023
  • Pandas数据分析18——pandas文本处理

    参考书目:《深入浅出Pandas:利用Python进行数据处理与分析》 pandas对文本数据也有很多便捷处理方法,可以不用写循环,向量化操作运算速度快,还可以进行高级的正则表达式…

    Python 2023年1月11日
    036
  • easy_install的使用和安装

    前提 Python 2.4.9和3.3以后的版本基本上 ez_setup 和 pip 已经默认安装(如果显示没有该命令的话,可能是刚安装上还没反应过来)如果使用的是老版本或者 ez…

    Python 2022年8月31日
    0175
  • 图解pandas的轴旋转函数:stack和unstack

    公众号:尤而小屋作者:Peter编辑:Peter 大家好,我是Peter~今天带来的文章是图解Pandas中的两个重要的函数:stack和unstack。 stack和unstac…

    Python 2022年12月30日
    036
  • 【2021115】【Python】Python求列表的均值、中位数、众数

    1. 求均值 先将 list 类型转为 array,再用 np.mean(a_array) 或者 a_array.mean() ~ import numpy as np a_lis…

    Python 2023年1月11日
    0150
  • python –(链表)

    链表的使用 /usr/bin/python –– coding: utf-8 –– Function: simulate the l…

    Python 2022年8月17日
    092
  • pytest之pytest.ini配置项

    ​ 参考文献: pytest 配置文件【pytest】pytest配置文件pytest.ini详解_Bug 挖掘机的博客-CSDN博客pytest.ini配置 pytest–配置 …

    Python 2023年1月17日
    046
  • Django 优化杂谈

    总结下最近看过的一些文章,然后想到的一些优化点,整理一下. Django 默认DB配置提供了选项 CONN_MAX_AGE用于配置在同一个thread/greenlet里面DB c…

    Python 2022年10月6日
    0122
  • python金融分析小知识(6)——偏度与峰度的计算

    Hello 大家好,我是一名新来的金融领域打工人,日常分享一些python知识,都是自己在学习生活中遇到的一些问题,分享给大家,希望对大家有一定的帮助! 相信在通常的统计分析中,我…

    Python 2023年1月10日
    084
  • 深度学习入门之SGD随机梯度下降法

    SGD SGD为 随机梯度下降法。用数学式可以将 SGD 写成如下的式(6.1)。这里把需要更新的权重参数记为 W,把损失函数关于 _W_的梯度记为∂L/∂W 。η 表示学习率,实…

    2022年8月28日
    0160
  • MATLAB2021下载安装图文教程

    微信公众号:创享日记发送关键词:matlab免费获取下面教程中的 Matlab_ R2021a(64bit) 安装包 前些天发现了一个巨牛的人工智能学习电子书,通俗易懂,风趣幽默,…

    Python 2023年2月2日
    041
  • NLP(四十七)文本纠错之获取形近字

    简介 笔者最近在从事文本纠错的相关工作,颇有收获,因此记录于此。文本纠错很大一部分工作在于纠正同音字、形近字,所谓形近字,是指字形相近的汉字。本文将介绍如何获取形近字。获取形近字的…

    Python 2023年1月20日
    032
  • #40 AI-001-火爆全网的聊天机器人ChatGPT能做什么

    0、 前言 11月30日,OpenAI推出了一个名为ChatGPT的AI聊天机器人,可以供公众免费测试, 短短几天就火爆全网。 从头条、公众号上多个宣传来看,它既能写代码、查BUG…

    Python 2023年2月4日
    014
  • Python中json.dumps() json.dump()的区别

    一、介绍 json.dumps() 与 json.loads() 成对出现 json.dump() 与 json.load() 成对出现 dumps() 与 dump() 作用相同…

    Python 2022年8月7日
    0358
  • 在Notepad++中配置python运行环境

    来源:https://www.cnblogs.com/5201351/p/13336689.html 1、当然首先还是需要先安装Python软件包的,比如Python 3.X 2、…

    Python 2022年8月9日
    0244
最近整理资源【免费获取】:   👉 程序员最新必读书单  | 👏 互联网各方向面试题下载 | ✌️计算机核心资源汇总