How to inherit application.properties in Spring?

membersound :

If I create a commons library having an application.properties defining common configurations. Like:

spring.main.banner-mode=off

How can I inherit these properties into another project where I include those commons library?

Maven:

<project ...>
    <groupId>de.mydomain</groupId>
    <artifactId>my-core</artifactId>
    <version>1.0.0</version>

    <dependencies>
        <dependency>
            <!-- this one holds the common application.properties -->
            <groupId>my.domain</groupId>
            <artifactId>my-commons</artifactId>
            <version>1.0.0</version>
        </dependency>
    </dependencies>
</project>

How can I inherit the configuration from my-commons to my-core?

membersound :

Solution is to include the shared properties using a different name, here application-shared.properties

In shared library:

@SpringBootApplication
@PropertySource(ResourceUtils.CLASSPATH_URL_PREFIX + "application-shared.properties") //can be overridden by application.properties
public class SharedAutoConfiguration {
}

In main app:

@SpringBootApplication
@Import(SharedAutoConfiguration.class)
public class MainAppConfiguration extends SpringBootServletInitializer {

}

This way the commons/shared config gets loaded, but is though able to be overridden in application.properties of main app.

It does not work with the spring.main.banner-mode property (don't know why), but with all other properties it worked well.

Guess you like

Origin http://10.200.1.11:23101/article/api/json?id=435605&siteId=1