【问题标题】:What is meant by the classpath root when the classpath contains many directories?当类路径包含许多目录时,类路径根是什么意思?
【发布时间】:2018-04-17 10:43:58
【问题描述】:

The spring boot documentation 表示它在类路径根目录中查找 application.properties。我试图弄清楚我的类路径根是什么,但是当我打印类路径时,它包含许多用冒号分隔的目录。 我收集到所有这些目录都在搜索加载类。

这是否意味着其中任何一个文件都将被视为位于类路径根目录中?如果其中两个目录中存在同名文件怎么办?

【问题讨论】:

    标签: java spring spring-boot classpath


    【解决方案1】:

    在您的情况下,实际上有多个类路径根。类路径的每个组件都是一个类路径根。因此,例如,如果您的类路径为:

    /user/home/dir1:/user/home/dir2
    

    dir1 和 dir2 都是类路径根,您可以将 application.properties 放在任一位置,Spring Boot 会找到它。

    【讨论】:

    • 补充答案,如果上例中的dir1dir2中存在这样的文件,则列表中的第一个将获胜(即dir1)。
    【解决方案2】:

    spring 在这里的意思是它有一些默认位置,它将根据优先级查找资源。

    根据Spring docs,优先级如下:

    file:./custom-config/
    classpath:custom-config/
    file:./config/
    file:./
    classpath:/config/
    classpath:/
    

    【讨论】:

    • 那个答案不准确。它没有回答原始问题,custom-config 只是一个需要额外配置的示例。
    猜你喜欢
    • 1970-01-01
    • 2022-01-23
    • 2022-09-28
    • 2010-11-05
    • 1970-01-01
    • 2012-03-12
    • 1970-01-01
    • 2023-04-06
    • 2022-01-10
    相关资源
    最近更新 更多