| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Java知识库 -> Spring Boot配置文件相关 -> 正文阅读 |
|
[Java知识库]Spring Boot配置文件相关 |
目录 1.配置文件的应用整个项?中所有重要的数据都是在配置?件中配置的,?如: 数据库的连接信息(包含?户名和密码的设置); 项?的启动端?; 第三?系统的调?秘钥等信息; ?于发现和定位问题的普通?志和异常?志等。 想象?下如果没有配置信息,那么 Spring Boot 项?就不能连接和操作数据库,甚?是不能保存可以? 于排查问题的关键?志,所以配置?件的作?是?常重要的。
2.配置文件的格式?Spring Boot 配置?件主要分为以下两种格式: .properties .yml 如下图所示: ?这两种配置文件其实在作用上别无二致,只不过是两个时代的产物罢了。.properties是比较老的一种格式,而.yml是比较新的一种格式。
为配置文件安装提示插件?IDEA 社区版安装 Spring Assistant 插件之后,就可以正常创建 Spring Boot 项?了,并且 yml 的配置 ?件就有提示了。但默认情况下是不?持 properties 格式的日志提示的,这个时候需要安装了 Spring Tools 插件才会有相应的提示。但是该插件目前仅支持2020及以前的版本,所以大家有能力的可以自行去安装IDEA教育版或者专业版,可以省去安装许多插件的烦恼。 3.properties 配置文件说明3.1 解决properties中文乱码的问题大家初次配置properties文件时,如果输入了中文,在重启idea后可能就会发现中文消失或者变成了乱码。这是因为properties文件的编码格式默认并不是UTF-8,所以需要我们去手动更改。 首先我们进入设置: 接下来进入编辑器->文件编码设置下面将这三个选项全部改成UTF-8即可。 ?然后还需要进入新项目设置再重复一次上述步骤。 ?最后将原来的properties文件删除再重新创建即可(因为原来文件的编码格式已经无法更改,只能删除重建)。 3.2?properties 基本语法properties 是以键值的形式配置的,key 和 value 之间是以“=”连接的,如:
同时我们可以注意到除了系统的配置文件我们也可以自定义配置项,这个在我们使用一些软件的接口时会用到。 3.3?读取配置文件如果在项?中,想要主动的读取配置?件中的内容,可以使用?@Value 注解来实现。 @Value 注解使?“${}”的格式读取,如下代码所示:
这样我们就可以在页面上来读取到我们的端口号信息了。 3.4?properties 缺点分析?properties 配置是以 key-value 的形式配置的,如下图所示: ?但是我们可以发现其实有很多信息是冗余的: ?想要解决这个问题,就可以使? yml 配置?件的格式化了。 4. yml配置文件说明yml 是 YMAL 是缩写,它的全称 Yet Another Markup Language 翻译成中?就是“另?种标记语?”。 yml 是?个可读性?,易于理解,?来表达数据序列化的格式。它的语法和其他?级语?类似,并且可 以简单表达清单(数组)、散列表,标量等数据形态。 4.1 yml的特点1.写法简单,可读性高 2.支持更多数据类型(比如对象) 3.跨语言使用(Java/Go/Python等) 其中跨语言是yml最大的优势,他使得运维人员不需要同时维护多个不同语言的配置文件 。 4.2 yml的语法yml 是树形结构的配置?件,它的基础语法是“key: value”,注意 key 和 value 之间使?英?冒号加空格的?式组成的,其中的空格不可省略。 这里似乎是因为专业版的原因所以会标红报错,社区版貌似并没有提示,大家请注意。 使用?yml 连接数据库
可以看到yml因为采用了树形结构,相比properties它大大减少了代码冗余。 4.3 yml的使用4.3.1 yml 配置不同数据类型
4.3.2 yml配置读取此处语法与properties读取配置完全一致,@Value 注解使?“${}”的格式读取,请参考前文的代码。这里不再重复说明。 4.3.3 有关value值单双引号的注意事项字符串默认不?加上单引号或者双引号,如果加英?的单双引号可以表示特殊的含义。 我们看到下面的代码:
我们将他读取出来并打印:
4.3.4 配置对象?不同于properties,在yml中是支持对象的。如下面配置。
也可以使用行内写法(与上面下用法一致,根据个人习惯选择即可)
这个时候就不能? @Value 来读取配置中的对象了,此时要使?另?个注解 @ConfigurationProperties 来读取,具体实现如下:
调?类的实现如下:
运行结果如下: ?4.3.5 配置集合
也可以使用行内写法
集合的读取和对象?样,也是使? @ConfigurationProperties 来读取的,具体实现如下:
打印类如下:
?结果如下: ?5.properties 与?yml 对比总结
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 | -2025/1/30 13:16:31- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |