I am using ConfigurationProperties to load properties to my application.
@ConfigurationProperties("foo.properties")
class WaterStreetProperties {
lateinit var fooProp: String
lateinit var fooProp2: String
lateinit var fooProp3: String
lateinit var fooProp4: String
}
I want to make them mandatory and the application should fail if a property is missing. How can I do this?
You may actually use data class with @NotEmpty
constraints like shown below as long all fields are mutable (var
generates both getter and setter).
@Context
causes bean to be loaded into application context during startup. If any validation errors, app will fail during startup.
import io.micronaut.context.annotation.Context
import io.micronaut.context.annotation.ConfigurationProperties
import javax.validation.constraints.NotEmpty
@Context
@ConfigurationProperties("foo.properties")
data class WaterStreetProperties(
@field:NotEmpty var fooProp: String = "",
@field:NotEmpty var fooProp2: String = "",
@field:NotEmpty var fooProp3: String = "",
@field:NotEmpty var fooProp4: String = ""
)
Tested with MN 3.8.7