本文主要是介绍SpringBoot @Value、 @ConfigurationProperties 与 @EnableConfigurationProperties 使用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
文章目录
- @Value 用法
- @Value("#{}")
- @Value("${}")
- ConfigurationProperties 用法
- 使用@Component加载到容器中
- 使用@Bean加载到容器中
- @EnableConfigurationProperties用法
@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 {}
这篇关于SpringBoot @Value、 @ConfigurationProperties 与 @EnableConfigurationProperties 使用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!