这是我参与8月更文挑战的第1天,活动详情查看:8月更文挑战
1.目的:代码中获取application.properties/yml中数据
1 获取单个数据
//1
@Value("${spring.map.url}")
private String url;
//3调用
public void aVoid(){
System.out.println(“路径为” + url);
}
#2配置文件
spring:
map:
url: 127.0.0.1:9000
2 批量匹配数据
//1类匹配
@Component
@ConfigurationProperties(prefix = "person")
public class Person {
private String lastName;
private Integer age;
private Boolean boss;
....
省略getset,tostring等
#2配置文件
person:
lastName: 战三
age: 12
boss: true
//3调用
@Autowired
private Person person;
@RequestMapping("/test1")
public void aVoid(){
System.out.println(person.toString());
}
3 扩展
//匹配指定的配置文件
@PropertySource(value = "classpath:person.yml")
2 目的:springboot中加新组件
@Configuration//配置类
public class MyAppConfig {
//将方法的返回值加到容器中,容器中bean默认id是方法名helloService
@Bean
public HelloService helloService(){
System.out.println("添加到容器中");
return new HelloService();
}
}
3 yml中占位符
1 可以写随机数
lastName: 战三1${random.uuid}
age: 121${random.int}
2 占位符,获取前面配置的值,如果没有可以设置默认值
abc: ${person.age:12}
4 多环境配置
4.1 yml中配置
spring:
profiles:
active: test 当前是测试环境
4.2 idea中启动配置
5 resours中多个配置文件
springboot启动会默认扫描使用application.yml作为默认配置文件,多个配置时会按照优先级进行加载,高优先级配置会覆盖低优先级配置的内容。
从高-----到低
也可以通过配置spring.config.location来改变默认配置。
6 按照指定的条件,给容器添加组件。
可以在yml中配置debug=true来查看springboot启动过程中debug模式