当前位置:网站首页>基础篇——配置文件解析
基础篇——配置文件解析
2022-07-05 20:09:00 【printf('小白');】
配置
复制模块
- 删除之前工程的文件,
只留下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
- properties
添加配置文件
- 配置文件自动代码提示
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);
边栏推荐
- B站UP搭建世界首个纯红石神经网络、基于深度学习动作识别的色情检测、陈天奇《机器学编译MLC》课程进展、AI前沿论文 | ShowMeAI资讯日报 #07.05
- 计算lnx的一种方式
- Ffplay document [easy to understand]
- Leetcode skimming: binary tree 12 (all paths of binary tree)
- DP: tree DP
- ACM getting started Day1
- 炒股开户最低佣金,低佣金开户去哪里手机上开户安全吗
- What is PyC file
- .Net分布式事務及落地解决方案
- Build your own website (16)
猜你喜欢
Go language | 03 array, pointer, slice usage
.Net分布式事务及落地解决方案
leetcode刷题:二叉树12(二叉树的所有路径)
. Net distributed transaction and landing solution
S7-200smart uses V90 Modbus communication control library to control the specific methods and steps of V90 servo
Oracle-表空间管理
SecureRandom那些事|真伪随机数
Leetcode skimming: binary tree 10 (number of nodes of a complete binary tree)
解决php无法将string转换为json的办法
Based on vs2017 and cmake GUI configuration, zxing and opencv are used in win10 x64 environment, and simple detection of data matrix code is realized
随机推荐
走入并行的世界
【数字IC验证快速入门】6、Questasim 快速上手使用(以全加器设计与验证为例)
Debezium series: idea integrates lexical and grammatical analysis ANTLR, and check the DDL, DML and other statements supported by debezium
ICTCLAS word Lucene 4.9 binding
深度学习 卷积神经网络(CNN)基础
Concept and syntax of function
Database logic processing function
B站UP搭建世界首个纯红石神经网络、基于深度学习动作识别的色情检测、陈天奇《机器学编译MLC》课程进展、AI前沿论文 | ShowMeAI资讯日报 #07.05
Cocos2d-x项目总结中的一些遇到的问题
S7-200smart uses V90 Modbus communication control library to control the specific methods and steps of V90 servo
Securerandom things | true and false random numbers
实操演示:产研团队如何高效构建需求工作流?
秋招字节面试官问你还有什么问题?其实你已经踩雷了
【数字IC验证快速入门】1、浅谈数字IC验证,了解专栏内容,明确学习目标
14. Users, groups, and permissions (14)
Analysis of openh264 decoded data flow
Wechat applet regular expression extraction link
怎么挑选好的外盘平台,安全正规的?
C langue OJ obtenir PE, ACM démarrer OJ
解决Thinkphp框架应用目录下数据库配置信息修改后依然按默认方式连接