一、springboot的配置文件

通常有:

application.properties

application.yaml

application.yml三种

.properties是创建springboot工程自动创建的,也是以前web等技术或spring框架的默认配置文件格式。

yaml和yml我目前还不知道哪个用的多,我一般会用yml,因为优先级较yaml高。

二、配置

.properties中的配置形式是键值对形式

例如:

1.服务器端口配置:server.port=8080

2.修改springboot启时的logo:

添加在resources下添加banner.txt,里面写想要的样子

我写了下面这个:

 ____   _         _
|  _ \ (_)       | |
| |_) | _   __ _ | |      ___    __ _   ___
|  _ < | | / _` || |     / _ \  / _` | / _ \
| |_) || || (_| || |____| (_) || (_| || (_) |
|____/ |_| \__, ||______|\___/  \__, | \___/__/ |                __/ ||___/                |___/

修改后:

3.修改日志的配置:

可以设置指定目录的日志级别,默认的值是“info”

logging.level.root=info
logging.level.com.xxx=warn/debug

三、三者的优先级

properties>yml>yaml

三者都在的时候:

拿走properties,剩下yaml和yml时:

由此得出优先级顺序是properties>yml>yaml

四、yml里面的数据格式(数据前面要用空格和冒号隔开)

1.数据格式特点:

大小写敏感;
属性层级关系使用多行描述,每行结尾使用冒号结束;
使用缩进表示层级关系,同层级左侧对齐,只允许使用空格(不允许使用Tab键,貌似idea会自动识别);
属性值前面添加空格(属性名与属性值之间使用冒号+空格作为分隔);
# 表示注释。

2.键值对表示方式:

boolean: TRUE #TRUE,true,True大小写均可,false也一样
float: 3.14 #6.8523015e+5 #支持科学计数法
int: 123 #0b1010_0111_0100_1010_1110 #支持二进制、八进制、十六进制
null: ~ #~表示null
string: HelloWorld #字符串可以直接书写
string2: "Hello World" #可以使用双引号包裹特殊字符
date: 2018-02-17 #日期必须使用yyyy-MM-dd格式
datetime: 2018-02-17T15:02:31+08:00 #时间和日期之间使用T连接,最后使用+代表时区(这个一般少见)

3.数组表示方法:

likes:- eat- basketball- sleepliks2: [eat,basketball,sleep]users:- name: zhangsanage: 23- name: lisiage: 22
//一个横线就是一组数据
users3: [{name:zhangsan,age:23},{name:lisi,age:24}] //还可以按照JSON格式来写

五、读取yml数据

使用@Value读取单个数据,属性名引用方式:${一级属性名.二级属性名……}

1.读取单个数据

比如我想读取张三的年龄:

@Value("${users[0].age}")
private String age; //这个命名为age只是为了好看,与要读取的变量名无关

注意:属性值中如果出现转移字符,需要使用双引号包裹(\t和\n就是转义字符)

lesson: "Spring\tboot\nlesson"

2.使用Environment对象封装全部配置信息

还是打印刚刚张三的年龄:

@Autowired
private Environment environment;
System.out.println(env.getProperty("user[0].name"));

3.封装一组数据(自定义对象封装指定数据)

相较于封装全部数据,封装一组数据,我可以想拿什么就拿什么

datasource:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost:3306/数据库名?serverTimezone=UTCusername: rootpassword: 密码
@Component
@ConfigurationProperties(prefix = "datasource")
public class DataSource {private String driverClassName;private String url;private String userName;private String password;
}
@RestController
@RequestMapping("/run")
public class RunController {@Autowiredprivate MyDataSource myDataSource;
}
这样就可以拿到我自己定义的dataSource配置的数据了

springboot的配置文件相关推荐

  1. SpringBoot YML配置文件

    引言 在之前的博客中说到了怎么样去创建一个SpringBoot的项目以及创建这个Spring项目之后怎么去启动使用这个SpringBoot的项目文件,还有就是SpringBoot项目的启动原理.下面的 ...

  2. SpringBoot写配置文件报错“The elements [xxx,xxx] were left unbound.“

    异常 在SpringBoot的配置文件application.yaml中写配置报错: 2021-06-22 21:01:01.962 WARN 28928 --- [ main] ConfigServ ...

  3. [学习记录] SpringBoot 5. 配置文件

    SpringBoot 5. 配置文件 尚硅谷 官方文档 1. yaml 文件 适合用来做以数据为中心的配置文件. 1.1 基本语法 key: value 大小写敏感 使用缩进表示层级关系 # 表示注释 ...

  4. SpringBoot之配置文件,带你全面掌握高级知识点

    pets:‐ cat‐ dog‐ pig 而第二种写法则是yaml对于这类数组类型的优化写法,支持将值写入一行,代表一个数组的值,使用[]进行包裹,如下: pets: [cat,dog,pig] 自动 ...

  5. springboot自动配置文件读取以及源码分析

    今天来讲讲springboot自动配置文件读取以及源码分析 springboot启动之后 1.首先进入@springbootApplication(如上图) 里面的**@EnableAutoConfi ...

  6. SpringBoot第 5 讲:SpringBoot+properties配置文件读取

    一.创建Maven项目 参考:SpringBoot第 1 讲:HelloWorld_秦毅翔的专栏-CSDN博客 二.修改pom.xml pom.xml中只需要添加springboot依赖即可 < ...

  7. 你只知道@Value?设置server.port就能定义端口号是如何实现的?springboot读取配置文件的多种方式以及源码解析

    你只知道@Value?设置server.port就能定义端口号是如何实现的?springboot读取配置文件的多种方式以及原理解析 一.SpringBoot全局配置文件优先级 二.属性注入常用注解 1 ...

  8. Linux使用Docker安装Nacos并配置MySQL数据源,将Springboot的配置文件部署到Nacos

    Linux使用Docker安装Nacos并配置MySQL数据源,将Springboot的配置文件部署到Nacos 前言 一.Docker中安装配置Nacos 安装Docker 拉取Nacos镜像 启动 ...

  9. Java|Kotlin, SpringBoot从配置文件中读取@KafkaListener参数配置

    springboot从配置文件中设置@KafkaListener参数配置 在java中使用占位符#{'${kakfa.topics}'}来进行参数注入 @KafkaListener(topics = ...

  10. 一文了解SpringBoot的配置文件

    本专栏将从基础开始,循序渐进,以实战为线索,逐步深入SpringBoot相关知识相关知识,打造完整的云原生学习步骤,提升工程化编码能力和思维能力,写出高质量代码.希望大家都能够从中有所收获,也请大家多 ...

最新文章

  1. 2.25-3.2 周记
  2. 【知识星球】模型量化从1bit到8bit,二值到三值
  3. 重建索引能释放掉字段因更改而产生额外列偏移量
  4. 白话经典算法系列之中的一个 冒泡排序的三种实现
  5. 贫血的Domain Model之说
  6. java.lang.NoClassDefFoundError: javax/transaction/Synchronization (jUnit测试报错)
  7. appium()-The event firing
  8. 【API进阶之路】太秃然了,老板要我一周内检测并导入一万个小时的视频
  9. leetcode 387. 字符串中的第一个唯一字符(First Unique Character in a String)
  10. ArcGIS制图表达Representation-制图表达原理
  11. C++函数模板特化,类模板特化
  12. 阿里反腐需要一次“遵义会议”
  13. 政务系统信息网络安全的风险评估
  14. 安卓APP自动更新功能实现
  15. 高并发累加器 Striped64
  16. linux 脚本判断进程,Shell实现判断进程是否存在并重新启动脚本
  17. Ubuntu 设置静态IP
  18. PointNet 翻译:
  19. Spring Cloud OAuth2中访问/oauth/token报Unsupported grant type: password问题的解决
  20. iOS - 获取设备标识符UUID/UDID/IMEI等

热门文章

  1. 怎样保护计算机桌面不被更改,电脑保护屏幕怎么设置
  2. 理解算法中的时间复杂度,O(1),O(n),O(log2n),O(n^2)
  3. 教你如何用CAD画向日葵
  4. HIT CSAPP hello的一生
  5. js实现鼠标移动到div背景颜色变换,移开还原
  6. ECshop增加paypal_EC流程
  7. java selenium回车键_JavaSelenium 模拟键盘方法封装
  8. Netflix Web 性能案例研究
  9. 人脸服务器如何与门禁系统对接,人脸识别终端门禁系统解决方案
  10. HTML5 CSS3做的一个静态的苹果官网首页