The configuration interfaces mechanism allows working with application properties using Java interface methods, providing the following benefits:
-
Typed access – application code works with actual data types (String, Boolean, Integer etc.) and not only with strings.
-
The application code uses interface methods instead of string property identifiers, so IDE can prompt their names.
Example of transaction timeout value access in Middleware block:
@Inject private ServerConfig serverConfig; public void doSomething() { int timeout = serverConfig.getDefaultQueryTimeoutSec(); ... }
If injection is impossible, the configuration interface reference can be obtained via Configuration infrastructure interface:
int timeout = AppBeans.get(Configuration.class) .getConfig(ServerConfig.class) .getDefaultQueryTimeoutSec();
Configuration interfaces are not regular Spring beans. They can only be obtained through explicit interface injection or
via Configuration.getConfig()
but not through AppBeans.get()
.