基础篇——配置文件解析

复制模块

  • 删除之前工程的文件,只留下pom.xml 和 src 文件
  • 修改pom文件中的artifactId与新工程一致
  • 如果不修改name标签的话,尽量把name标签和description标签都删除
  • 保留备份即可

属性配置(application.properties)

  • 每一个配置对应的是技术,如果不引用某种技术,配置文件中就不会有代码提示
  • 官方配置文档
# 服务器端口配置
server.port=80

# 修改banner
#spring.main.banner-mode=console
# 修改banner图
#spring.banner.image.location=ysg.jpg

# 日志
logging.level.root=info

配置文件三种类型

  • 三种共存时properties > yml > yaml
  • 相同的属性会采用优先级,不同配置则都会保留配置
    properties
    yml
    yaml

添加配置文件

  • 配置文件自动代码提示

在这里插入图片描述

yml配置文件

  • 优点
    容易阅读
    容易与脚本交互
    以数据核心,重数据轻格式
  • 语法规则
    大小写敏感
    属性层级关系使用多行描述,每行结尾使用冒号结束
    使用缩进表示层级关系,同层级左侧对齐,只允许使用空格
    属性值前面添加空格(属性名和属性值之间使用 冒号+空格作为分隔)
    #表示注释
  • yml文件中的各种数据格式
# 服务器端口配置
server:
  port: 81

country: china

party: true

birthday: 1949-10-01

null: ~

# 一个对象
user:
  name: ssc
  age: 23

# 多层级对象
a:
  b:
    c:
      d: 5

# 数组
likes:
  - game
  - music
  - sleep
  -
likes1: [game,music,sleep]

# 对象数组
users:
  -
    name: zhangsan
    age: 18
  -
    name: wangwu
    age: 23

users1:
  - name: zhangsan
    age: 18
  - name: wangwu
    age: 23

users2: [{name:zhangsan,age:18},{name:lisi,age:17}]

读取yml文件的数据

  • 注解@Value配合SpEL读取单个数据,多个数据按层级读取
    // 读yml中数据的单一数据
    @Value("${country}")
    private String country1;
    // 对象
    @Value("${user.name}")
    private String name1;
    // 数组
    @Value("${likes[1]}")
    private String likes1;
    // 数组对象
    @Value("${users[0].age}")
    private String age1;
    // 端口号
    @Value("${server.port}")
    private String port;

变量引用 & 转义字符

# 变量引用
baseDir: c:\windows

tempDir: ${baseDir}\temp

# 转义字符
tempDir1: "${baseDir}\temp \t1 \t2 \t3 \t4"
// 变量引用
@Value("${tempDir}")
private String tempDir;
// 转义字符
@Value("${tempDir1}")
private String tempDir1;

读取全部yml属性

  • 使用Environment 对象封装全部信息
  • 使用@Autowired自动装配数据到Environment 对象中
  • env.getProperty(“server.port”)读取不同的属性
// 读取全部yml属性,自动装配
    @Autowired
    private Environment env;
 System.out.println(env.getProperty("server.port"));
 System.out.println(env);

读取yml引用数据类型(常用

  • yml定义一个对象数据类型
# 需要被读取引用数据类型
datasource:
  driver: com.mysql.cj.jdbc.Driver
  url: jdbc:mysql://localhost:3306/mybatis
  username: root
  password: 123456
  • 指定对应的类
// spring管理的Bean
@Component
// 指定加载的yml的某一个属性
@ConfigurationProperties(prefix = "datasource")
@Data
public class MyDataSource {
    private String driver;
    private String url;
    private String username;
    private String password;
}
  • 输出
System.out.println(myDataSource);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值