【学习之路】spring boot 自定义yml文件的放置路径

本文讲述了在Spring Boot项目中遇到的自定义YML配置文件放置路径问题,详细描述了尝试将配置文件放置在非默认路径下导致的启动错误。通过求助网友,找到了解决方案,成功解决了配置文件被加载的问题。最后,作者希望这篇文章能帮助到遇到同样问题的读者,并欢迎大家留言分享更好的解决思路。

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

一 .踩坑原因
通常spring项目启动默认读取的是 classpath:/、 classpath:/config/、file:./、file:./config/ 这4个位置.我想把它放在自定义的目录下,如图
在这里插入图片描述
结果启动后找不到配置文件,默认走8080端口,报错。

二.求助神奇网友

解法1 :在启动文件里这样写

@SpringBootApplication
@EnableEurekaServer
public class DemoEurekaServer {

    private static Logger log = LoggerFactory.getLogger(DemoEurekaServer.class);
    public static void main(String[] args) {
        log.info("Eureka 开始启动...");
        // springboot 默认的配置文件路径
        // String addClassPath = "spring.config.location:classpath:/";
        // 自定义的配置文件路径
        String addClassPath = "spring.config.additional-location:classpath:/";
        addClassPath += ",classpath:/env/";
        new SpringApplicationBuilder(DemoEurekaServer.class).properties("spring.config.name:application", addClassPath).build().run(args);
//        SpringApplication.run(DemoEurekaServerApplication.class, args);
        log.info("Eureka 启动完成...");
    }
}

结果报这个错误:

17:37:45.772 [main] INFO com.dx.demoeurekaserver.DemoEurekaServer - Eureka 开始启动...
17:37:48.131 [main] DEBUG org.springframework.boot.diagnostics.LoggingFailureAnalysisReporter - Application failed to start due to an exception
org.springframework.boot.context.config.ConfigDataLocationNotFoundException: Config data location 'classpath:/env/' cannot be found
	at org.springframework.boot.context.config.ConfigDataEnvironment.checkMandatoryLocations(ConfigDataEnvironment.java:383)
	at org.springframework.boot.context.config.ConfigDataEnvironment.applyToEnvironment(ConfigDataEnvironment.java:326)

搜了半天也没解决为啥找不到路径的问题。
换个思路回去解决最初的问题。

	解法2:在pom的<build>里加上这个
  
        <resources>
            <resource>
                <directory>src/main/resources</directory>
                <includes>
                    <include>**/*.properties</include>
                    <include>**/*.xml</include>
                </includes>
                <filtering>false</filtering>
            </resource>
            <resource>
                <directory>src/main/resources/env</directory>
                <filtering>true</filtering>
            </resource>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.xml</include>
                </includes>
                <filtering>false</filtering>
            </resource>
        </resources>

然后能正常启动了(注:里面的星号不是注解)
在这里插入图片描述
在这里插入图片描述
具体原理请自行在网上查找。

PS: 希望对看到本文的人有所帮助,如果你有更好的建议或思路欢迎留言。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值