该注解由springboot提供
有时候我们需要读取配置文件的信息,封装为一个实体类实例,这时候,可以使用@ConfigurationProperties,它可以把同类的配置信息(实际上就是具有相同前缀的属性值)自动封装成实体类实例
首先在配置文件里面,这些信息是这样子滴
connection.username=admin
connection.password=abcd
三种使用方法,当然都需要有setter方法
一. 和@Component结合使用,共同作用于类定义
@Component
@ConfigurationProperties(prefix="connection")
public class ConnectionSettings {
private String username;
private String password ;
// setter方法...
}
二. 我们还可以把@ConfigurationProperties还可以直接定义在@bean的注解上,这时bean实体类定义就不需要@Component和@ConfigurationProperties了
public class ConnectionSettings {
private String username;
private String password ;
// setter方法...
}
@SpringBootApplication
public class DemoApplication{
@Bean
@ConfigurationProperties(prefix = "connection")
public ConnectionSettings connectionSettings(){
return new ConnectionSettings();
}
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
三. 借助@ EnableConfigurationProperties 将类加入到bean容器中, 不需要有@Component
// ConnectionSettings.java
@ConfigurationProperties(prefix="connection")
public class ConnectionSettings {
private String username;
private String password ;
// setter方法...
}
// spring boot 主类
@SpringBootApplication
@EnableConfigurationProperties(ConnectionSettings.class)
public class DemoApplication{
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
最后我们可以通过@Autowired进行引用
参见:
http://blog.csdn.net/yingxiake/article/details/51263071
http://blog.csdn.net/qq_26000415/article/details/78942494
https://www.jianshu.com/p/b71845c142d0
网友评论