有时候有这样子的情景,我们想把配置文件的信息,读取并自动封装成实体类,这样子,我们在代码里面使用就轻松方便多了,
这时候,我们就可以使用@ConfigurationProperties,它可以把同类的配置信息自动封装成实体类.
首先在配置文件里面,这些信息是这样子滴
connection.username=admin connection.password=kyjufskifas2jsfs connection.remoteAddress=192.168.1.1
它有两种用法:
1.注解在类上
将外部的配置文件properties的数据和类的属性进行绑定
@Component @ConfigurationProperties(prefix="connection") public class ConnectionSettings { private String username; private String remoteAddress; private String password ; public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getRemoteAddress() { return remoteAddress; } public void setRemoteAddress(String remoteAddress) { this.remoteAddress = remoteAddress; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } }
2.将bean方法的返回对象和外部的配置文件进行绑定
@Bean @ConfigurationProperties(prefix = "connection") public ConnectionSettings connectionSettings(){ return new ConnectionSettings(); } public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); }
另外要注意@EnableConfigurationProperties这个配套注解:
@ConfigurationProperties注解主要用来把properties配置文件转化为bean来使用的,而@EnableConfigurationProperties注解的作用是@ConfigurationProperties注解生效。如果只配置@ConfigurationProperties注解,在IOC容器中是获取不到properties配置文件转化的bean的。