I think, I found a workaround for this problem. A asume, that app1.war
and app2.war
are different wars and not the same with different names.
Then you can use the Application initialization process at runtime to define per application a different spring.config.name
. Instead of application.properties
then every WAR (and of corse every jar) looks for a application specific called properties file.
/** Main Entry Point for this Application */
@SpringBootApplication(scanBasePackages = "de.mach.selfservices")
public class Application extends SpringBootServletInitializer implements WebApplicationInitializer {
// JAR init
public static void main(String[] args) {
SpringApplicationBuilder builder = new SpringApplicationBuilder(Application.class);
if (!System.getProperties().containsKey("spring.config.name")) {
builder = builder.properties("spring.config.name:app1");
}
builder.run(args);
}
// WAR init
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
if (!System.getProperties().containsKey("spring.config.name")) {
builder = builder.properties("spring.config.name:app1");
}
return builder.sources(Application.class);
}
}
The second application has then app2
in spring.config.name
. In both cases the default behaviour of SpringBoot is like expected. It looks inside and outside the WAR/JAR for app1.properties
or app2.properties
. So you can put two files in wildfly/standalone/configuration
and can configure both WARs independently.