码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • SpringBoot-Profile功能与外部化配置


    目录

    一、Profile功能

    二、@Profile条件装配

    三、profile分组

    四、外部化配置

    4.1 配置文件查找位置

    4.2 配置文件加载顺序


    一、Profile功能

            为了方便多环境适配,springboot简化了profile功能。

    • 对于默认配置文件 application.yaml;任何时候都会加载
    • 我们还可以指定环境配置文件 application-{env}.yaml
    • 激活指定环境

            1.配置文件激活

    spring.profiles.active=prod

            2.命令行激活(修改配置文件的任意值,命令行优先)--

     java -jar xxx.jar --spring.profiles.active=prod --person.name=haha

                    激活application-{env}.yaml,同时设置person.name属性为haha

    • 默认配置与环境配置同时生效
    • 同名配置项,profile配置优先

    二、@Profile条件装配

            假如有这样的配置类,可以使用@Profile注解表明它生效的场景。也可以标注在方法上。

    1. @Configuration(proxyBeanMethods = false)
    2. @Profile("production") //环境指定为production时生效
    3. public class ProductionConfiguration {
    4. // ...
    5. }

    三、profile分组

            当一个环境下有两个配置文件时可以将它们分为一组,则激活这个组的时候两个配置文件都生效:

    1. spring.profiles.group.production[0]=prod1
    2. spring.profiles.group.production[1]=prod2
    3. #使用:--spring.profiles.active=production 激活

    四、外部化配置

            外部化配置就是把那些根据不同环境切换的参数放在工程外部。

            常用外部配置源:Java属性文件、YAML文件、环境变量、命令行参数;

    4.1 配置文件查找位置

    (1) classpath 根路径

    (2) classpath 根路径下config目录

    (3) jar包当前目录

    (4) jar包当前目录的config目录

    (5) /config子目录的直接子目录

    4.2 配置文件加载顺序

    1.  当前jar包内部的application.properties和application.yml
    2.  当前jar包内部的application-{profile}.properties 和 application-{profile}.yml
    3.  引用的外部jar包的application.properties和application.yml
    4.  引用的外部jar包的application-{profile}.properties 和 application-{profile}.yml

            指定环境优先,外部优先,后面的可以覆盖前面的同名配置项 。最简单的实践:

            我们在打包好的应用所在目录下配置一个application.yml,那么该配置文件就会生效。

  • 相关阅读:
    Java19虚拟线程都来了,我正在写的线程代码会被淘汰掉吗?
    C# 中的装箱(boxing)和拆箱(unboxing)
    JSON数据格式
    【RocketMQ 二十三】RocketMQ应用之消息过滤
    数字验证学习笔记——UVM学习2 覆盖方法
    2022 icpc杭州站 C. No Bug No Game - 背包dp
    QT5 QCamera摄像头
    【故障补牢】贪吃的 Bing 爬虫,限量供应的应对措施
    Java学习之Java多线程知识点
    移动通信:数字调制技术(BPSK, DPSK, QPSK, Π/4 QPSK,BFSK, MSK, GMSK, M-ary)学习笔记
  • 原文地址:https://blog.csdn.net/weixin_62427168/article/details/126177378
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号