Writing an Initializer
Initializers must implement ApplicationContextInitializer<GenericApplicationContext>
. In the initialze
method, you can access your DSL using the getDsl
extension method.
class CustomInitializer : ApplicationContextInitializer<GenericApplicationContext> {
override fun initialize(applicationContext: GenericApplicationContext) {
applicationContext.getDsl<CustomDsl>()?.run {
// register beans here
}
}
}
spring.factories
In order for your initializer to be auto-discovered by Spring Boot applications, you must add an entry in src/main/resources/META-INF/spring.factories
.
org.springframework.context.ApplicationContextInitializer=\
com.yourorg.CustomDsl