You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot 1.5.22迁移至2.0.0后server.tomcat.baseDir配置失效

Spring Boot 迁移至2.0.0后嵌入式Tomcat临时目录配置失效问题及解决

问题场景

将Spring Boot从1.5.22版本迁移到2.0.0版本后,遇到嵌入式Tomcat生成临时目录的配置不生效问题:

原有配置

主配置文件application.properties:

basePath=/info/components
server.tomcat.baseDir=${basePath}/apps/service

开发环境配置文件application.properties:

basePath=classpath:

自定义初始化逻辑

有一个继承自PathInit的初始化类BasePathOverride,会在应用启动前根据运行环境覆盖basePath的值,核心代码如下:

public class BasePathOverride extends PathInit {

    @Override
    public void run(ApplicationContext context) throws InitException {
        String basePath = context.getEnvironment().getProperty("basePath");

        if (/* 检查basePath是否为空 */) {
            String path = getAbsolutePath(basePath); // 返回绝对路径(如"/home/user/...")

            // 检查新路径是否正确/存在

            System.setProperty("basePath", path);
        } else {
            // 其他逻辑
        }
    }

}

问题现象

在Spring Boot 1.5.22版本中,上述逻辑可以正常生效,Tomcat的baseDir会使用覆盖后的basePath路径;但升级到2.0.0版本后,即使通过System.setProperty覆盖了basePath,Tomcat的baseDir仍然指向默认的/info/components路径。

解决方法

将Spring Boot版本从2.0.0.RELEASE升级至2.0.9.RELEASE后,该问题得到解决,Tomcat的baseDir可以正确使用覆盖后的basePath路径。


内容的提问来源于stack exchange,提问作者Andrei Țocu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 21:02:02