spring boot自定义配置文件并且提示

本文介绍了如何在SpringBoot项目中创建并管理自定义配置文件,以解决配置过多导致的application.properties文件臃肿问题。通过添加spring-boot-configuration-processor依赖并配置maven插件,可以生成配置元数据,使自定义配置文件在IDE中得到提示。同时,展示了创建一个配置类JWTConfig来绑定my-config.yml文件,确保配置生效,并验证了配置提示的正确性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SpringBoot项目中配置文件是必不可少的,随着配置的大量增加,如果将所有的配置都放在框架自带的application.properties文件中,就会导致该过度臃肿且分类不够明确,为解决这一问题,我们常常需要自定义配置文件,此时就会带来一个问题,那就是自定配置文件无法被框架所识别(如果被识别,配置文件会带有一个小绿色的叶子),框架无法识别也就是导致输入配置时,没有相应的提示。

1、添加依赖

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-configuration-processor</artifactId>
    <optional>true</optional>
</dependency>

配置spring-boot-maven-plugin以防止repackage目标将依赖项添加到 jar 中:

<project>
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <excludes>
                        <exclude>
                            <groupId>org.springframework.boot</groupId>
                            <artifactId>spring-boot-configuration-processor</artifactId>
                        </exclude>
                    </excludes>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

2、添加配置文件my-config.yml

jwt:
  algorithm: HS256
  expires: 2

并创建一个对应的类:
创建这个类不是必须,我这里只是想说明,自己写的配置类,也可以被提示,并不仅仅只提示spring框架的配置。

@Data
@Configuration
@ConfigurationProperties(prefix = "jwt", ignoreUnknownFields = true)
@PropertySource("classpath:my-config.yml")
public class JWTConfig {
   /** 加密方式 */
   String algorithm;

   /** 过期时间,单位分钟 */
   long expires;
}

重新clean项目,在\target\classes\META-INF目录会生成spring-configuration-metadata.json。里面存储的是我们自定义的配置文件的提示信息。
在这里插入图片描述

3、让自定义的配置文件被框架管理

在这里插入图片描述
在这里插入图片描述

4、验证效果

自定义的配置 和 spring框架的配置都能提示
在这里插入图片描述
在这里插入图片描述

### 如何在 Spring Boot 中指定自定义配置文件位置 在 Spring Boot 应用程序中,可以通过多种方式来指定自定义配置文件的位置。以下是几种常见的方式: #### 使用命令行参数 可以在启动应用程序时通过命令行参数传递配置文件的位置。例如: ```bash java -jar myapp.jar --spring.config.location=classpath:/default.properties,classpath:/override.properties,file:./config/application.properties ``` 这会告诉 Spring Boot 从多个位置加载配置文件,并按照顺序覆盖相同的属性[^1]。 #### 修改 `application.properties` 或 `application.yml` 也可以直接在 `application.properties` 或者 `application.yml` 文件里指明其他外部配置文件的位置: 对于 properties 文件来说: ```properties spring.config.additional-location=file:///path/to/config/ ``` 而对于 yml 文件则是这样写: ```yaml spring: config: additional-location: file:///path/to/config/ ``` 这种方式允许开发者灵活地添加额外的配置源而无需改变原有的配置文件结构[^3]。 #### 利用环境变量 还可以利用操作系统的环境变量来设定配置文件路径,在 Linux/Unix 系统上可以这样做: ```bash export SPRING_CONFIG_LOCATION=/path/to/config/ ``` 而在 Windows 上则应使用 set 命令代替 export 。之后再运行 jar 即可自动识别该目录下的配置文件[^2]。 以上方法均能有效地帮助用户更改默认情况下位于 classpath 下的应用程序配置文件的位置,从而满足同场景下对资源配置的需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值