【发布时间】:2016-06-10 08:59:31
【问题描述】:
假设我有 5 个 Spring Boot 项目。它们都对带有一些共享/公共类的 Spring Boot 项目 No 6 具有 Maven 依赖关系。 5 个独立的项目在每个 application.properties 中分配了很多公共属性,我想将它们抽象出来并将它们移动到公共项目中。总体来说是这样的:
Project 1 (app.properties)
Common Project (app-common.properties) <--- Project 2 (app.properties)
Project 3 (app.properties)...
当前的问题是 app-common.properties 位于 project1.jar/lib/common-project.jar 中,而 app-common.properties 显然不会在启动时加载。
有没有办法从依赖中扩展它?
CommonProject 主类如下所示:
@SpringBootApplication
public class CommonApplication extends SpringBootServletInitializer {
protected static void run(SpringApplication application, String[] args) {
application.run(args);
}
}
Project1 主类如下所示:
public class Project1 extends CommonApplication {
public static void main(String[] args) {
run(new SpringApplication(Project1.class), args);
}
}
【问题讨论】:
-
并非如此。我最终将所有常见值/属性提取到带有常量的 java 类中,其中值是通过 setter 进行的 @Inject 。并且该 java 类用于底层项目。蹩脚,但快速的解决方法。如果以后找到更好的方法,我会在这里发布。
-
谢谢,所以我实际上尝试了 Anton 下面的内容,并且成功了。我在依赖项中有一个通用的道具文件,并且使用类路径道具看起来效果很好。只需将注释放在您声明 @SpringBootApplication 的位置
-
感谢您的输入!根据您的成功经验,我会接受安东的回答。
-
如何在依赖中使用profiles?
标签: spring spring-boot