【发布时间】:2018-03-13 05:13:14
【问题描述】:
我正在使用spring boot并将其部署为独立tomcat中的战争。下面是我的应用程序类。
public class APIApplication extends SpringBootServletInitializer {
public static void main(String[] args) {
configureApplication(new SpringApplicationBuilder()).run(args);
}
public static SpringApplicationBuilder configureApplication(SpringApplicationBuilder builder) {
return builder.sources(APIApplication .class).properties(getProperties());
}
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(APIApplication .class);
}
public static Properties getProperties() {
Properties props = new Properties();
props.setProperty("spring.config.location",
"/home/config_directory/");
props.setProperty("spring.config.name", "apiapplication");
return props;
}
}
但这不起作用并且不会从 /home/config_directory/apiapplication.properties
中读取感谢任何帮助。
编辑
也试过了
public static void main(String[] args) {
System.setProperty("spring.config.location","/home/config_directory/");
System.setProperty("spring.config.name", "apiapplication.properties");
SpringApplication.run(DriverguidanceapiApplication.class, args);
//configureApplication(new SpringApplicationBuilder()).run(args);
}
也没有用。
【问题讨论】:
-
你的文件名是'apiapplication.properties',然后确保你在'spring.config.name'中准确传递。另外......这些属性需要很早就传递给 JVM(根据文档),尝试使用 -D 标志运行 JVM 并在那里传递您的配置选项。可以在这里阅读:docs.spring.io/spring-boot/docs/current/reference/html/…
-
是的,文件名是 apiapplication.properties
-
您是否尝试过在启动时将 -D 传递给 JVM?
-
我在 statndalone tomcat 中部署为 war 文件。而不是作为 Fat Jar
-
好吧,我很困惑。你能尝试用远程调试运行tomcat,只在启动时调试spring吗?
标签: spring spring-boot application.properties