对依赖 jar 和主战争使用单独的属性文件

问题描述

我有 2 个 Spring Boot 应用程序。 AppA 是一个 jar,主要充当服务(服务、外部 api 调用等)。 AppB 是一场以 AppA 作为依赖的战争。

AppA (jar) 目前没有 MySvcApplication.java 文件 @SpringBootApplication,因为它从来没有单独运行过,我注意到在运行 AppB 时,该文件从未运行过。 AppB (war) 有一个 MyMainApplication.java 文件,其中 @SpringBootApplication 具有 scanBasePackages 属性

我希望 AppA 和 AppB 拥有自己的属性文件,如果可能,还有一个共享的属性文件(在 svc 内)(即 svc.properties、main-app.properties、common.properties)。

我已经阅读了几种更改文件名的方法(应用程序内、命令行)(通过 spring.config.name),但这适用于战争(在 MyMainApplication.java 中),但不适用于依赖 jar。

SpringApplicationBuilder()
  .properties("spring.config.name=myproject")
  .sources(MyApplication.class)
  .run(args);

有什么想法吗?

解决方法

在 AppB 中为共享属性创建一个新的属性文件(例如 svc.properties),并将其包含在 AppB 的 application.properties 中 spring.profiles.include=svc 它应该可以工作。