spring boot 配置文件

SpringBoot 配置文件 配置文件主要是为了解决硬编码带来的问题,把可能会发生改变的信息,放在一个集中的地方,当我们启动某个程序时,应用程序从配置文件中读取数据,并加载运行。 阅读详情

一、spring boot 配置文件

Spring Boot配置文件优先级加载机制

SpringBoot项目启动会扫描以下位置的application.properties或者application.yml作为默认的配置文件.
file:./config/
file:./config/*/
file:./
classpath:/config/
classpath:/

加载的优先级顺序是从上向下加载,并且所有的文件都会被加载,
高优先级的内容会覆盖低优先级的内容,形成互补配置
源码:ConfigFileApplicationListener

在这里插入图片描述
项目结构:
在这里插入图片描述
注意:当是多模块项目时,最外层的/config文件夹下的配置,在打包时,功能模块并不会用到,而是用模块内的配置文件,一般情况下,类似微服务的多模块,每个模块都有对应的配置文件,并且配置文件放在模块的/resource文件下。这种/config最高优先级的一般是适用单体项目

二、springboot项目启动配置文件生效顺序(从高到低)

1、命令行参数
如:java -jar XXXX-0.0.1-SNAPSHOT.jar --spring.profiles.active=test
2、来自java:comp/env的JNDI属性
3、Java系统属性(System.getProperties())
4、操作系统环境变量
5、RandomValuePropertySource配置的random.*属性值
备注:由jar包外向jar包内进行寻找,优先加载带profile的,再加载不带profile的
6、jar包外部的application-{profile}.properties或application.yml(带spring.profile)配- 置文件
7、jar包内部的application-{profile}.properties或application.yml(带spring.profile)配置文件
8、jar包外部的application.properties或application.yml(不带spring.profile)配置文件
9、jar包内部的application.properties或application.yml(不带spring.profile)配置文件
10、@Configuration注解类上的@PropertySource
12、通过SpringApplication.setDefaultProperties指定的默认属性
注:同一目录下,properties配置文件优先级 > yml/yaml配置文件优先级。
因此在jar包启动时如果带上properties写法的配置可以覆盖配置。
yaml/yml配置文件写法冒号后要加空格

三、配置文件值的读取

方式一、通过@value读取比较简单的配置信息

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

方式二、通过@ConfigurationProperties读取并与 bean 绑定

@Component
@ConfigurationProperties(prefix = "redis") // 
class RedisConfig {
    private String host; // 属性名称跟application.yml中定义的一致
    private String port;
}
注: 该注解用于从配置文件中取值,支持复杂的数据类型,但是不支持SPEL表达式。
prefix属性:指定获配置的前缀,毕竟配置文件中的属性很多,也有很多重名的,必须用一个前缀来区分下。
该注解可以标注在类上也可以标注在方法上,这里就可以看出它有两种获取值的方式。

注:@ConfigurationProperties这个注解仅仅是支持从SpringBoot的默认配置文件中取值,也就是application.properties、application.yml、application.yaml,那我们如何从自定义配置文件取值呢???
别着急,有解决办法,那就是再加一个注解:@PropertySource(value=“classpath:custom-profile.properties”),

@PropertySource注解,读取指定 properties 文件

@Component
@PropertySource("classpath:website.properties")
@Data
class WebSite {
    @Value("${url}")
    private String url;
}
有时候为了避免application.yml的配置过于臃肿,可以适用@PropertySource加载指定的配置文件
@Component
@PropertySource("classpath:custom.properties")
@Data
class WebSite {
    @Value("${url}")
    private String url;
}
注:
@PropertySource注解属性
value:是一个数组,可以指定多个配置文件同时引入。
value是数组那么问题就来了:如果同时加载多个配置文件,并且不同配置文件中对同一个属性设置了不同的值,Spring加载顺序为从左到右顺序加载,后加载的会覆盖先加载的属性值。

注:
@PropertySource默认加载xxx.properties类型的配置文件,不能加载YML格式的配置文件,要加载yaml配置,需指定factory属性来加载YML格式的配置文件。同时加载多个配置

扩展

SpringBoot还提供了@ImportResource注解加载外部配置文件,
只不过@ImportResource通常用于加载Spring的xml配置文件
@ImportResource使用
SpringBoot提出零xml的配置,因此SpringBoot默认情况下是不会主动识别项目中Spring的xml配置文件。
为了能够加载xml的配置文件,Spring Boot提供了@ImportResource注解,
该注解可以加载Spring的xml配置文件,通常加于启动类上


@SpringBootApplication
@ImportResource(value = {"classpath:config/beans.xml"})
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}
教你如何使用 SpringBoot配置文件 配置项目的端口号#用户自定义配置项hi=hellotest.hi=test_hello //可以加 .复制代码。 阅读详情

相关推荐

Spring —— Spring Boot 配置文件

Spring Boot 配置文件, 一起来学习吧! !

Gujiu的博客 1858

模板驱动型文档自动化:零代码批量生成专业PDF

文档自动化是企业提升内容生产效率的核心技术,其本质是通过结构化模板与动态数据绑定,实现标准化文档的规模化、一致性输出。相比传统手动编辑或编程渲染(如Python+Jinja2),模板驱动方案以可视化逻辑、条件判断、跨数据源集成和样式继承为关键能力,显著降低使用门槛并提升业务响应速度。它广泛应用于投标文件、咨询报告、合同协议、SEO诊断报告等高频、高合规要求场景,尤其适合市场、HR、咨询、教培等非技术岗位。Sqribble作为典型代表,支持母版-章节-组件三级架构、Excel/JSON/API多源绑定及防错校

dgqvhtlwq472235338的博客 849

Spring BootSpring Boot的系统配置 — 系统配置文件

我们知道Spring Boot程序启动时,控制台会输出由一串字符组成的Spring符号的启动图案(Banner)以及版本信息(见下图)。Spring Boot自带的启动图案是否可以自定义呢?答案是肯定的。下面通过示例来演示如何自定义Spring Boot的启动图案。步骤01在项目的resources目录下新建banner.txt,示例代码如下:在上面的配置中,通过${}获取application.properties配置文件中的相关配置信息,如Spring Boot版本、应用的版本、应用名称等信息。

衍生星球的博客 1740

SpringBoot配置文件

为了更方便简单的访问数据库,出现了一些持久层框架,其实就是对JDBC进行了更深层次的封装,让用户通过几行简单代码就可完成数据库的访问。如果采用硬编码的方式,就直接在程序中指定字体大小,所有的用户使用的都是同一个字体大小,但是不同的用户有不同的偏好,我们可以把手机字体的大小放在配置文件中,当程序启动时,读取配置,以用户设置的字体大小来显示。的问题,把可能会改变的信息,放在一个集中的地方,当我们启动某个程序时,应用程序从配置文件中读取数据,并加载运行。使用单引号会转义,就是说,\n不再表示换行了。

m0_62241955的博客 3808

JavaEE】Spring Boot配置文件

SpringBoot配置文件,properties与yml,yaml格式及基础语法

yj20040627的博客 2879

Spring Boot配置文件

SpringBoot配置文件讲解

qq_67549203的博客 1014

Spring Boot的两种配置文件

文章目录一、properties1.配置文件的默认位置,及执行优先级顺序2.配置文件默认位置的修改3.项目已打包成jar,在启动命令中加入位置参数即可4.文件名问题 在Spring Boot中,配置文件有两种不同的格式,一个是properties,另一个是yaml。properties文件比较常见相对于properties而言,yaml更加简洁明了,而且使用的场景也更多,很多的开源项目都是使用ya...

Tang 1万+

13.<Spring Boot配置文件】>

1.SpringBoot配置文件的格式以及对应的语法 2.了解两个配置文件格式的差异、优缺点。 我们这里只做简单的介绍。看会,了解,学会读取就行了。 因为配置文件实在太多了,这里只做基础的介绍。

m0_73456341的博客 1773

Spring Boot 配置文件深度解析

本文深入探讨了 Spring Boot 配置文件的核心作用及其主流格式。通过对比 Properties 与 YAML (YML) 的语法差异、优先级及适用场景,结合 @Value 与 @ConfigurationProperties 注解的代码实战,帮助开发者掌握配置读取的高级技巧。文章最后通过一个“图形验证码”综合案例,演示了如何将配置项优雅地集成到实际业务中。

此人很懒,什么都留下了...快进来看看吧 2080

Spring Boot 配置文件(如果想知道有关Spring Boot 配置文件的知识,那么只看这一篇就足够了!)

Spring Boot 配置文件(如果想知道有关Spring Boot 配置文件的知识,那么只看这一篇就足够了!)

秋刀鱼不做梦的编程日常 1790

Spring boot 配置文件

Spring boot 配置文件Spring boot 配置文件1、配置文件2、YAML语法:1、基本语法2、值的写法3、配置文件值注入1、properties配置文件在idea中默认utf-8可能会乱码2、@Value获取值和@ConfigurationProperties获取值比较3、配置文件注入值数据校验4、@PropertySource&@ImportResource&@Bean4、配置文件占位符1、随机数2、占位符获取之前配置的值,如果没有可以是用:指定默认值5、Profile1、

weixin_50020236的博客 554

spring boot配置文件

SpringBoot使用一个全局的配置文件(核心配置文件配置文件名在约定的情况下名字是固定的;配置文件名称只能叫application.properties 或者 application.yml配置文件的作用:修改SpringBoot自动配置的默认值;SpringBoot在底层都给我们自动配置好了2.2 两种配置文件的格式在springboot框架中,resource文件夹里可以存放配置的文件有两种:properties和yml。可共存和混用。

m0_64473908的博客 1283

Spring Boot配置文件注入值到实体类中

Spring Boot全局配置文件有俩种方式 application.properties application.yml 或者application.yaml 全局配置文件时可以对一些默认值进行修改,如 tocmat 的端口号 等等 什么是.yml文件? .yml是YAML 语言的文件,以数据为中心 , 比如说 json , xml 等更适合做配置文件。 YAML基本...

NULL 1万+

Spring Boot配置文件

对于自定义配置信息来说。我们要做的事情不仅仅需要书写配置信息,还需要书写代码来获取这些被书写的信息。比如阿里云的一些信息,如果我们在使用的时候是直接写在JAVA代码中的话,假如哪一天这些信息被更改话,就得重新更改,重新部署这个项目,所以我们需要将如下信息提取出来写在一个相应的配置文件中,然后通过获取配置文件的方式得到这些信息。所以下次修改就只需要修改配置文件就行。那该怎么获取配置信息?这样就可以获取到配置文件中的信息。还可以通过在实体类上添加注解来省略,同时属性名对应。

2401_84080967的博客 1284

Spring Boot配置文件详解

Spring Boot配置文件详解 Spring Boot 提供了大量的自动配置,极大地简化了spring 应用的开发过程,当用户创建了一个 Spring Boot 项目后,即使不进行任何配置,该项目也能顺利的运行起来。当然,用户也可以根据自身的需要使用配置文件修改 Spring Boot 的默认设置。 SpringBoot 默认使用以下 2 种全局的配置文件,其文件名是固定的。 application.properties application.yml 其中,application.yml 是一种

yinyin_xiao的博客 2216
上一篇: MAC安装maven步骤
下一篇: 阿里云ECS服务器配置外部端口和内部容器端口的映射
阿king的架构之路
博客等级 码龄9年 67粉丝 26原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值