- Mastering Spring Boot 2.0
- Dinesh Rajput
- 215字
- 2021-06-25 21:29:15
Externally configuring application properties
Spring Boot allows you to create your own customized configuration of application properties with beans. You can register these beans as properties with Spring Boot by using the @ConfigurationProperties annotation, and after this, you can set these properties by using either the application.properties or application.yml file.
Spring Boot provides alternative ways of working with properties that allow you to strongly type safe beans and validate the configuration of your application. Let's see the use of the @ConfigurationProperties annotation for a dedicated container bean:
- This @ConfigurationProperties annotation will hold the externalized properties
- It avoids repeating the prefix
- Data members automatically set from corresponding properties
Let's see the following example:
@Component @ConfigurationProperties(prefix="accounts.client") public class ConnectionSettings { private String host; private int port; private String logdir; private int timeout; ... // getters/setters ... }
This POJO defines the following properties in the application.properties file:
accounts.client.host=192.168.10.21 accounts.client.port=8181 accounts.client.logdir=/logs accounts.client.timeout=4000
You could set these properties as environment variables, or you could specify these properties as command-line arguments, or you can add these in any of the other places where configuration properties can be set.
Don't forget to add @EnableConfigurationProperties in one of your Spring configuration classes because the @ConfigurationProperties annotation won't work unless you have enabled it by adding the @EnableConfigurationProperties annotation.