Spring boot is based on a lot of pre-made auto-configuration parent projects. You should already be familiar with spring boot starter projects.
You can easily create your own starter project by doing the following easy steps:
@Configuration
classes to define default beans. You should use external properties as much as possible to allow customization and try to use auto-configuration helper annotations like @AutoConfigureBefore
, @AutoConfigureAfter
, @ConditionalOnBean
, @ConditionalOnMissingBean
etc. You can find more detailed information on each annotation in the official documentation Condition annotations@Configuration
classes.spring.factories
and place it in src/main/resources/META-INF
.spring.factories
, set org.springframework.boot.autoconfigure.EnableAutoConfiguration
property with comma separated values of your @Configuration
classes:org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
com.mycorp.libx.autoconfigure.LibXAutoConfiguration,\
com.mycorp.libx.autoconfigure.LibXWebAutoConfiguration
Using this method you can create your own auto-configuration classes that will be picked by spring-boot. Spring-boot automatically scan all maven/gradle dependencies for a spring.factories
file, if it finds one, it adds all @Configuration
classes specified in it to its auto-configuration process.
Make sure your auto-configuration
starter project does not contain spring boot maven plugin
because it will package the project as an executable JAR and won't be loaded by the classpath as intended - spring boot will not be able to find your spring.factories
and won't load your configuration