-
SpringBoot提供了多种属性配置方式
①application. properties:默认配置文件,通过通过键值对配置对应属性。
②application. yml:主流使用
③application. yaml:
-
例如,修改服务器端口号
现在访问的是服务器的端口8080,有点麻烦,可以用80端口代替,就不用写端口号了。
-
现在用的是内嵌的tomcat,那怎么配置呢?
通过springboot默认配置文件进行修改tomcat端口号。
#服务器端口配置
server.port=80
-
springboot内置属性查询
进入spring官网,springboot点击帮助文件,进行查询。
1. SpringBoot中导入对应starter后,提供对应配置属性。
2.书写SpringBoot配置采用关键字+提示形式书写
-
SpringBoot配置文件加载顺序
application. properties > application. yml > application. yaml
不同配置文件中相同配置按照加载优先级相互覆盖,不同配置文件中不同配置全部保留。
-
yaml语法规格:属性名冒号后面与数据之间有一个空格
yaml读取
使用@Value读取单个数据
-
属性名引用方式:${一级属性名.二级属性名……}
-
总结
1. 使用@Value配合SpEL读取单个数据 。
2. 如果数据存在多层级,依次书写层级名称即可。
变量引用
在配置文件中可以使用属性名引用方式引用属性。
属性值中如果出现转移字符,需要使用双引号包裹。
读取全部属性数据
-
封装全部数据到Environment对象。
//使用自动装配将所有的数据封装到一个对象Environment中
@Autowired
// 封装全部数据
private Environment environment;
@GetMapping
public String getId(){
System.out.println(""+environment.getProperty("user.username"));
System.out.println(""+environment.getProperty("likes.[1]"));
return "hello springboot";
}
}
-
总结:
1. 使用Environment对象封装全部配置信息。
2. 使用@Autowired自动装配数据到Environment对象中。
-
注意:
用起来并不方便,还得记得属性名,所以读取的时候最好别一次性读完封装到一个对象中,只读取一部分,变成想要的对象,封装数据,应该针对性封装一部分,那怎么进行封装呢?
读取yaml引用类型属性数据(封装局部数据 常用)
-
思路:
封装局部数据,首先提供数据(对象格式),提供用来封装模型类,
这个类就用来封装定义数据中的某一部分,而模型类和某一部分的数据通过@ConfigurationProperties()注解指定封装的那一组数据,把前缀告诉封装类。
- springboot的配置文件
- 封装属性数据类
// 1. 定义数据模型封装yaml文件中对应的数据
@Component // 2. 定义为spring管控的bean(交给spring ioc管理)
//3. 指定加载的数据
@ConfigurationProperties(prefix = "datasource")
public class MyDataSource {
// 属性名要和yaml文件属性一致
private String driver;
private String url;
private String username;
private String password;
....
}
}
- 控制层获取输出数据
-
总结
1.使用@ConfigurationProperties注解绑定配置信息到封装类中。
2. 封装类需要定义为Spring管理的bean,否则无法进行属性注入。