SpringBoot @Value、 @ConfigurationProperties 与 @EnableConfigurationProperties 使用
程序员文章站
2022-04-19 22:34:54
...
文章目录
@Value 用法
@Value("#{}")与@Value("${}")的区别
@Value("#{}")
@Value(“#{}”) 表示SpEl表达式通常用来获取bean的属性,或者调用bean的某个方法。当然还有可以表示常量
@Value("#{1}")
private int number; //获取数字 1
@Value("#{'Spring Expression Language'}") //获取字符串常量
private String str;
@Value("#{dataSource.url}") //获取bean的属性
private String jdbcUrl;
@Value("${}")
用 @Value(“${xxxx}”)注解从配置文件读取值的用
@Value("${upload.path}")
private String uploadPath;
ConfigurationProperties 用法
使用@Component加载到容器中
特殊场景下,我们想把配置文件的信息,读取并自动封装成实体类,这样我们就可以少写很多配置,这时候,就可以使用@ConfigurationProperties,它可以把同类的配置信息自动封装成实体类。
conn.username=admin
conn.password=kyjufskifas2jsfs
conn.remoteAddress=192.168.1.1
@Component
@ConfigurationProperties(prefix="conn")
public class ConnSettings {
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;
}
}
使用@Bean加载到容器中
@Bean
@ConfigurationProperties(prefix = "conn")
public ConnSettings connSettings(){
return new ConnSettings();
}
@EnableConfigurationProperties用法
@EnableConfigurationProperties注解的作用是:使 @ConfigurationProperties 注解的类生效。
如果一个配置类只配置@ConfigurationProperties注解,而没有使用@Component,那么在IOC容器中是获取不到properties 配置文件转化的bean。@EnableConfigurationProperties 相当于把使用 @ConfigurationProperties 的类进行了一次注入。
@ConfigurationProperties(prefix="conn")
public class ConnSettings {
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;
}
}
@EnableConfigurationProperties(ConnSettings.class)
public class ConnConfiguration {
}
推荐阅读
-
Winform中对DevExpress的RadopGroup的Description、Value、Tag、Text的理解与使用
-
使用SpringBoot和SpringSecurity实现 JWT 认证与授权
-
springboot集成与使用Sentinel的方法
-
springboot~Mongodb的集成与使用
-
SpringBoot中@Value注解默认值使用及效果测试
-
c# 数据结构与算法解读篇(键值对key-value的使用)
-
SpringBoot中@ConfigurationProperties使用及乱码问题
-
spring boot中关于获取配置文件注解的使用@ConfigurationProperties、@Value、@PropertySource
-
荐 springboot整合swagger2以及swagger2的介绍与Spring Security的整合使用
-
使用websocket实现浏览器与服务端进行双向通信(Vue springboot)