当前位置: 首页 > 知识库问答 >
问题:

在spring boot中在war文件之外加载属性文件

姜杜吟
2023-03-14

我需要从spring boot war外部加载application.properties文件,该文件将部署在Tomcat中。

我试过各种解决方案,遗漏了一些东西

>

  • 尝试在windows中设置环境变量,如下所示

    尝试将上下文参数设置为tomcat,如下文所述,请回答https://stackoverflow.com/A/44697239/2751962

    尝试在扩展SpringBootServletIntializer的主文件中这样加载

    受保护的SpringApplicationBuilder配置(SpringApplicationBuilder应用程序){return application.Sources(application.Class).Properties(getProperties());}

     public static void main(String[] args) throws Exception {
                    SpringApplication.run(Application.class, args);
    
                     SpringApplicationBuilder springApplicationBuilder = (SpringApplicationBuilder) (new SpringApplicationBuilder(Application.class))
                     .sources(Application.class)
                     .properties(getProperties())
                     .run(args);
    
    
                }
    
                static Properties getProperties() {
                    Properties props = new Properties();
                    props.put("spring.config.location", "file:///D:/test/application.properties​");
                    return props;
                }
    

    我不知道我错过了什么,好心的帮助。

  • 共有1个答案

    钱星华
    2023-03-14

    您可以尝试通过XML和或Java配置和@PropertySource设置属性。

    @Configuration
    @PropertySource("classpath:foo.properties")
    public class PropertiesWithJavaConfig {
        //...
    }
    

    来源:-https://www.baeldung.com/properties-with-spring

     类似资料:
    • 我无法加载位于jar (project.service.jar)中的db.properties,它被war文件(project-web.war)引用。输出war将jar放在we b-INF/lib/project . service . jar中。rest war也使用jar,它使用jar中的一些服务。当战争开始时,我无法加载位于服务的jar文件中的db.properties。prop文件具有要在

    • 问题内容: 我有一个JAR文件,我的所有代码都已存档以便运行。我必须访问一个属性文件,每次运行前都需要对其进行更改/编辑。我想将属性文件保留在JAR文件所在的目录中。无论如何,有没有告诉Java从该目录中提取属性文件? 注意:我不想将属性文件保留在主目录中或在命令行参数中传递属性文件的路径。 问题答案: 因此,你希望将与主/可运行jar相同文件夹中的文件视为文件,而不是作为主/可运行jar的资源。

    • 问题内容: 我已经看过几次,并尝试了一些建议,但都没有成功(到目前为止)。我在以下路径上有一个maven项目和属性文件: 我正在尝试将其加载到Singleton类中以通过键访问属性 但是我在运行时遇到了NullPointerError的问题。我已经完成了所有可以想到的操作,但是无法找到/加载文件。 有任何想法吗? 堆栈跟踪: 问题答案: 您应该实例化您的对象。另外,您还应该使用以下路径加载资源文件

    • 问题内容: 我正在尝试执行JUnit测试期间从我的类路径中加载sample.properties,它在类路径中找不到文件。如果编写Java Main类,则可以很好地加载文件。我正在使用以下ant任务执行我的JUnit。 JUnit: 输出: 问题答案: 您需要添加到。 更新 :根据评论中的交流,事实证明不是问题所在。而是使用了错误的类加载器。 根据加载类的类加载器查找资源的路径。事实证明,该类是由

    • 问题内容: 我正在整理一个.jar文件。我想创建一个非常简单的.properties文件,其中包含诸如用户名和其他内容之类的可配置内容,以便他们可以手动编辑,而不必包括GUI编辑器。 我想做的是能够按此顺序搜索: 指定的属性文件() 当前目录(调用Java的目录)中的MyApp.properties 用户目录中的MyApp.properties(user.home系统属性?) 存储应用程序.jar

    • 我在尝试添加