springBoot基础--properties配置

本文介绍了SpringBoot中的配置文件格式及加载方式,包括自动加载的application.properties文件和需要手动加载的自定义配置文件,并详细解释了如何使用注解进行配置。

SpringBoot中免除了大部分手动配置,但是对于一些特定的情况,还是需要我们进行手动配置的,SpringBoot为我们提供了application.properties配置文件,让我们可以进行自定义配置,来对默认的配置进行修改,以适应具体的生产情况,当然还包括一些第三方的配置。几乎所有配置都可以写到application.peroperties文件中,这个文件会被SpringBoot自动加载,免去了我们手动加载的烦恼。但实际上,很多时候我们却会自定义配置文件,这些文件就需要我们进行手动加载,SpringBoot是不会自动识别这些文件的,下面就来仔细看看这些方面的内容。


1. 配置文件格式

SpringBoot可以识别两种格式的配置文件,分别是yml文件与properties文件,我们可以将application.properties文件换成application.yml,这两个文件都可以被SpringBoot自动识别并加载,但是如果是自定义的配置文件,就最好还是使用properties格式的文件,因为SpringBoot中暂时还并未提供手动加载yml格式文件的功能(这里指注解方式)。

application.properties配置文件欲被SpringBoot自动加载,需要放置到指定的位置:src/main/resource目录下,一般自定义的配置文件也位于此目录之下。

2. 配置文件加载

加载的意思就是将文件读取到Spring容器之中,更确切的说就是将各个配置项装载到Spring上下文容器之中供随时取用。

  1. 公共配置文件:application.properties,是在SpringBoot项目启动的时候被自动加载的,其内部的相关设置会**自动覆盖**SpringBoot默认的对应设置项,所以的配置项均会保存到Spring容器之中
  2. 自定义配置文件:***.properties
    自定义的xxx.properties配置文件是不会被SpringBoot自动加载的,需要手动去进行加载,这里的手动加载一般指的是注解的方式加载,这里就涉及到我们今天的重点之一:加载自定义属性文件的注解:@PropertySource(“classpath:xxx.properties”),这个注解专门用来加载指定位置的properties文件,Spring暂未提供加载指定位置yml文件的注解,所以才有之前的说法。

其实无论对于哪里的properties文件,当我们需要使用其中配置内容的时候,就在当前类的顶部加注该注解,将该配置文件加载到内存,这些配置文件一次加载即可多次使用。但更通用的情况是新建一个配置类,使用@Configuration标注,再加上之前的@PropertySource(“classpath:xxx.properties”)注解,而类的内部并不需要任何内容,这是一个纯粹的配置加载类。由于@Configuration的作用(底层为@Component),他会被Spring的扫描器扫到,并加载到JVM,并创建Bean,而创建的时候就会执行配置文件中配置项的加载。这种方式加载的配置可以在任何Spring管辖的类中用@Value(“${key}”)的方式使用,见下方介绍。

https://www.cnblogs.com/shamo89/p/8178109.html

在Spring Boot应用中,使用 `-D` 参数可以灵活地指定 `application.properties` 文件的位置或直接设置某些属性值。这种方式利用了JVM的系统属性机制,允许在启动时动态注入配置信息,从而影响Spring Boot的配置加载行为。 ### 指定 `application.properties` 文件位置 通过 `-Dconfig.location` 参数,可以指定 `application.properties` 文件的外部路径,Spring Boot会优先从该路径加载配置文件: ```bash java -jar myapp.jar -Dconfig.location=file:/opt/config/ ``` 上述命令中,`file:/opt/config/` 是自定义的配置文件目录,Spring Boot会从该目录下查找 `application.properties` 文件并加载其中的配置[^1]。 也可以使用相对路径或类路径方式指定配置位置: ```bash java -jar myapp.jar -Dconfig.location=classpath:/config/ ``` 这种方式适用于将配置文件打包在JAR文件内部,但需要将其在特定的路径下以便Spring Boot识别。 ### 设置单个属性值 除了指定配置文件路径,`-D` 参数也可以用于直接设置某个属性的值,例如: ```bash java -Dserver.port=8081 -jar myapp.jar ``` 上述命令会覆盖 `application.properties` 中定义的 `server.port` 值,Spring Boot在启动时会优先使用 `-D` 参数中指定的值。这种方式适用于临时调整某些配置,而无需修改配置文件内容。 ### 多环境配置切换 在多环境配置场景下,可以通过 `-D` 参数设置 `spring.profiles.active` 来激活特定的Profile,从而加载对应的配置文件: ```bash java -Dspring.profiles.active=dev -jar myapp.jar ``` 结合 `application.yml` 的多文档块写法,可以实现基于Profile的配置切换: ```yaml server: port: 9090 spring: profiles: active: pro --- # development environment spring: profiles: dev test_name: dev_testName --- # production environment spring: profiles: pro test_name: pro_testName ``` 当通过 `-Dspring.profiles.active=dev` 激活 `dev` Profile时,Spring Boot将加载对应的配置块并应用其中的属性值[^2]。 ### 结合 `application.properties` 使用 无论通过 `-D` 参数如何指定配置,Spring Boot始终会加载默认的 `application.properties` 文件,并将其作为基础配置来源。通过 `-D` 参数设置的属性会覆盖 `application.properties` 中相同名称的属性值。这种机制确保了配置的灵活性与可维护性之间的平衡。 ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值