首先在pom 文件引入 配置文件处理器依赖
<!--配置文件处理器 与配置文件绑定就会有提示 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
其次创建 配置文件
首先 在resources 上new file file name: application.yml (必须是这个名字,不要乱改,否则配置内容无法被找到)
**
* @Component 容器
* @ConfigurationProperties 这个组件只有放入容器才能被使用
*/
@Component
//注意prefix等于的值 就是 .yml 文件中可识别的编号
@ConfigurationProperties(prefix ="ll")
public class Do {
private String name;
private String ex;
注意:application.properties 配置文件中的书写方法 其余都是一样的
#map书写方法
ll.变量名.k=v
#数组写法
ll.变量名=值1,值2,...
ll.name=1236
ll.ex=123
注意:.properties 文件默认是ascii编码格式 但idea 编码格式为utf-8 所以
这种情况 通过 .properties配置得中文会出现乱码问题 解决方法
勾选 运行时 .properties 文件转成ascii 编码格式 即可
.yml文件(注意yaml语法)
ll:
name: asd
ex: dd
测试类
/**
* springboot单元测试
* 可以在编码期间很方便的类似与编码一样自动注入等容器
*/
//固定写法
@RunWith(SpringRunner.class)
@SpringBootTest
class DemoApplicationTests {
@Autowired
Do ll;
@Test
void contextLoads() {
System.out.println(ll);
}
输出看结果
2019-12-21 16:27:08.611 INFO 25404 — [ main] com.example.demo.DemoApplicationTests : Started DemoApplicationTests in 1.703 seconds (JVM running for 2.615)
Do{name=‘asd’, ex=‘dd’}
2019-12-21 16:27:08.795 INFO 25404 —
yaml 语法: 注意k:空格v
k:空格v: 表示一对键值对 (空格必须有);
以空格的缩进来控制层级关系;只要是左对齐的一列数据,都是同一层级的
server:
port: 8081
path: /hello123
属性和值也是大小写敏感的
2、值的写法
字面量: 普通的值 (数字、字符串、布尔)
k: v 字面直接来写;
字符串默认不用加单引号或者双引号;
”“: 双引号;不会转义字符串里面的特殊字符;特殊字符会作为本身想表示的意思
name: “zhangsan \n list” 输出;zhangsan 换行 lisi
”单引号;会转义特殊字符,特殊字符最终只是一个普通的字符串数据
name: “zhangsan \n list” 输出;zhangsan \n lisi
对象Map(属性和值) (键值对) :
k: v 在下一行来写对象的属性和值的关系;注意:后有空格
对象还是k:v 形式
friends:
lastName: zhangsan
age: 20123
行内写法:
friends: {lastName: zhangsan, age: 18}
数组List、Set:
用-值表示数组中的一个元素
pets:
- cat
- dog
- pig
行内写法
pets: [cat,dog,pig]