SpringBoot项目中获取配置文件的配置信息
系统配置文件 application.yaml或者 application.properties 中的属性值
假如我们配置文件.yaml的信息是
myconfig:
username: abc
password: 123
或者.properties
myconfig.username=abc
myconfig.password=123
1.通过@Value
类需要被spring扫描到
@Component
public class MyConfig {
@Value("myconfig.username")
private String name;
@Value("myconfig.password")
private String password;
}
@Value()可以设置默认值
@Value("myconfig.username:admin") //当没有配置 myconfig.username的时候默认值是 admin
@Value("myconfig.username:") //默认值是空字符串
2.通过Environment
@Component
public class MyConfig {
@Autowired
private Environment environment;
public String getUsername() {
return environment.getProperty("myconfig.username");
}
public String getPassword() {
return environment.getProperty("myconfig.password");
}
}
Environment也可以设置默认值
environment.getProperty("myconfig.username",“admin”)//没有配置myconfig.username的话默认值是admin
3.使用@ConfigurationProperties
先在主类加上启动配置注解 @EnableConfigurationProperties
@SpringBootApplication
@EnableConfigurationProperties
public class SpringbootApplication {
public static void main(String[] args) {
SpringApplication.run(SpringbootApplication.class, args);
}
}
编写获取配置信息的类
@Component
@ConfigurationProperties(prefix = "myconfig")
//@PropertySource(value = "classpath:application.yml") 如果配置信息在其他配置文件中需要把文件名写在这
public class MyConfig {
private String username;
private String password;
}
@Component 表示将该类标识为Bean
@ConfigurationProperties(prefix = "myconfig")用于绑定属性,其中prefix表示所绑定的属性的前缀。
@PropertySource(value = "classpath:application.yml")表示配置文件路径。springboot能自动加载到的配置文件不用写 比如application.yml,application.properties,bootstrap.yml,bootstrap.properties,application-dev.yml。。。。
正文到此结束
相关文章
热门推荐
评论插件初始化中...