[6-02-01].第05節:配置文件 - YAML配置文件語法

SpringBoot學習大綱


一、YAML語法

1.1.概述:

  • 1.YAML是一種數據序列化格式
  • 2.它是以數據為中心
  • 3.容易閱讀,容易與腳本語言交互,如下圖所示:
    在這里插入圖片描述

1.2.基本語法

  • 1.key: value:kv之間有空格
  • 2.使用縮進表示層級關系
  • 3.縮進時候不可以使用tab鍵,只可以使用空格
  • 4.縮進的空格數量不重要,重要的是相同層級的元素只要在縮進后可以齊就可
  • 5.屬性和值中:大小寫敏感
  • 6.#表示注釋
  • 7.字符串不需要加引號:當屬性中如果出現了某些特殊的字符,就可以使用雙引號包裹起來作為字符解析
    • 單引號會將\n作為字符串輸出
    • 雙引號會將\n作為換行輸出,雙引號會改變它的行為,作為換行,單引號不會改變它的行為(雙引號會轉義,單引不號會轉義
      在這里插入圖片描述

2.3.數據類型

  • 1.字面量:單個的、不可再分的值:date、boolean、string、number、null
k: v

在這里插入圖片描述

  • 2.對象:鍵值對的集合。map、hash、set、object
行內寫法:  k: {k1:v1,k2:v2,k3:v3}
#或k: k1: v1k2: v2k3: v3
  • 3.數組:一組按次序排列的值。array、list、queue
行內寫法: k: [v1,v2,v3]
#或者
k:- v1- v2 - v3

在這里插入圖片描述


二、配置文件說明:

2.1.配置位置

  • 1.SpringBoot 項目最重要也是最核心的配置文件就是 application.properties
  • 所有的框架配置都可以在這個配置文件中說明
#SPRING CONFIG(ConfigFileApplicationListener)
spring.config.name =#配置文件名(默認 為 'application' )
spring.config.location =#配置文件的位置# 多環境配置文件激活屬性
spring.profiles.active=dev #加載 application-dev.properties 配置文件內容
application-dev.properties: #開發環境
application-test.properties: #測試環境
application-prod.properties: #生產環境#activemq
spring.activemq.broker-url #指定 ActiveMQ broker 的 URL,默認自動生成. spring.activemq.in-memory #是否是內存模式,默認為 true. spring.activemq.password #指定 broker 的密碼. spring.activemq.pooled #是否創建 PooledConnectionFactory ,而非
ConnectionFactory,默認 false
spring.activemq.user #指定 broker 的用戶.#aop
spring.aop.auto #是否支持@EnableAspectJAutoProxy,默認為: true
spring.aop.proxy-target-class #true 為使用 CGLIB 代理,false 為 JDK 代理,默認為 false#application
spring.application.admin.enabled #是否啟用 admin 特性,默認為: false
spring.application.admin.jmx-name #指定 admin MBean 的名稱,默認為:
org.springframework.boot:type=Admin,name=SpringApplication#artemis(HornetQ 捐獻給 apache 后的版本)
spring.artemis.embedded.cluster-password #指定集群的密碼,默認是啟動時隨機生成. spring.artemis.embedded.data-directory #指定 Journal 文件的目錄.如果不開始持
久化則不必要指定. spring.artemis.embedded.enabled #是否開啟內嵌模式,默認 true
spring.artemis.embedded.persistent #是否開啟 persistent store,默認 false. spring.artemis.embedded.queues #指定啟動時創建的隊列,多個用逗號分隔,默認: []
spring.artemis.embedded.server-id #指定 Server ID. 默認是一個自增的數字,
從 0 開始. spring.artemis.embedded.topics #指定啟動時創建的 topic,多個的話逗號分韓順平 Java 工程師隔,默認: []
spring.artemis.host #指定 Artemis broker 的 host. 默認: localhost
spring.artemis.mode # 指 定 Artemis 的 部 署 模 式 , 默 認 為
auto-detected(也可以為 native or embedded). spring.artemis.port #指定 Artemis broker 的端口,默認為: 61616#autoconfig
spring.autoconfigure.exclude #配置要排除的 Auto-configuration classes. #batch
spring.batch.initializer.enabled #是否在必要時創建 batch 表,默認為 true
spring.batch.job.enabled #是否在啟動時開啟 batch job,默認為 true
spring.batch.job.names #指定啟動時要執行的 job 的名稱,逗號分隔,默認所有 job 都會被執行
spring.batch.schema # 指 定 要 初 始 化 的 sql 語 句 路 徑 , 默認:classpath:org/springframework/batch/core/schema-@@platform@@.sql)
spring.batch.table-prefix #指定批量處理的表的前綴.#cookie、session 配置
server.session.cookie.comment #指定 session cookie 的 comment
server.session.cookie.domain #指定 session cookie 的 domain
server.session.cookie.http-only #是否開啟 HttpOnly. server.session.cookie.max-age #設定 session cookie 的最大 age. server.session.cookie.name #設定 Session cookie 的名稱. server.session.cookie.path #設定 session cookie 的路徑. server.session.cookie.secure #設定 session cookie 的“Secure” flag. server.session.persistent #重啟時是否持久化 session,默認 false
server.session.timeout #session 的超時時間
server.session.tracking-modes #設定 Session 的追蹤模式(cookie, url, ssl).#datasource
spring.dao.exceptiontranslation.enabled # 是 否 開 啟
PersistenceExceptionTranslationPostProcessor,默認為 true
spring.datasource.abandon-when-percentage-full #設定超時被廢棄的連接占到多少比例時要被關閉或上報
spring.datasource.allow-pool-suspension #使用 Hikari pool 時,是否允許連接池..................................

2.2.修改默認配置:

  • 1.各 種 配 置 都 有 默 認 , 可 以 在 resources\application.properties 修 改 ,application.properties 文件我們可以手動創建
#默認 server.port=8080
server.port=10000
#比如: 默認 spring.servlet.multipart.max-file-size=1MB
#該屬性可以指定 springboot 上傳文件大小的限制
#默認配置最終都是映射到某個類上,比如這里配置會映射到 MultipartProperties
#把光標放在該屬性,ctrl+b 就可以定位該配置映射到的類
spring.servlet.multipart.max-file-size=10MB

2.3.常用配置

#端口號
server.port=10000
#應用的上下文路徑(項目路徑)
server.servlet.context-path=/allModel#指定 POJO 掃描包來讓 mybatis 自動掃描到自定義的 POJO
mybatis.type-aliases-package=com.cxs.allmodel.model
#指定 mapper.xml 的路徑
#(application 上配置了@MapperScan(掃面 mapper 類的路徑)和 pom.xml 中放行了 mapper.xml 后,
# 配 置 mapper-locations 沒 有 意 義 。 如 果 mapper 類 和 mapper.xml 不 在 同 一 個 路 徑 下 時 ,
mapper-locations 就有用了)
mybatis.mapper-locations=classpath:com/cxs/allmodel/mapper
#session 失效時間(單位 s)
spring.session.timeout=18000
#數據庫連接配置
#mysql 數據庫 url
mysql.one.jdbc-url=jdbc:mysql://127.0.0.1:3306/test?serverTimezone=Asia/Shanghai&useSSL=false
#mysql 數據庫用戶名
mysql.one.username=
#數據庫密碼
mysql.one.password=
#線程池允許的最大連接數
mysql.one.maximum-pool-size=15
#日志打印:日志級別 trace<debug<info<warn<error<fatal 默認級別為 info,即默認打印 info 及其以
上級別的日志
#logging.level 設置日志級別,后面跟生效的區域,比如 root 表示整個項目,也可以設置為某個包下,
也可以具體到某個類名(日志級別的值不區分大小寫)
logging.level.com.cxs.allmodel.=debug
logging.level.com.cxs.allmodel.mapper=debug
logging.level.org.springframework.web=info
logging.level.org.springframework.transaction=info
logging.level.org.apache.ibatis=info
logging.level.org.mybatis=info
logging.level.com.github.pagehelper = info
logging.level.root=info
#日志輸出路徑
logging.file=/tmp/api/allmodel.log
#配置 pagehelper 分頁插件
pagehelper.helperDialect=mysql
pagehelper.reasonable=true
pagehelper.supportMethodsArguments=true
pagehelper.params=count=countSql
#jackson 時間格式化
spring.jackson.serialization.fail-on-empty-beans=false
#指定日期格式,比如 yyyy-MM-dd HH:mm:ss,或者具體的格式化類的全限定名
spring.jackson.date-format=yyyy-MM-dd HH:mm:ss
#指定日期格式化時區,比如 America/Los_Angeles 或者 GMT+10
spring.jackson.time-zone=GMT+8
#設置統一字符集
spring.http.encoding.charset=utf8
#redis 連接配置
# redis 所在主機 ip 地址
spring.redis.host=
#redis 服務器密碼
spring.redis.password=
#redis 服務器端口號
spring.redis.port=
#redis 數據庫的索引編號(0 到 15)
spring.redis.database=14
## 連接池的最大活動連接數量,使用負值無限制
#spring.redis.pool.max-active=8
#
## 連接池的最大空閑連接數量,使用負值表示無限數量的空閑連接
#spring.redis.pool.max-idle=8
#
## 連接池最大阻塞等待時間,使用負值表示沒有限制
#spring.redis.pool.max-wait=-1ms
#
## 最小空閑連接數量,使用正值才有效果
#spring.redis.pool.min-idle=0
#
## 是否啟用 SSL 連接. ##spring.redis.ssl=false
#
## 連接超時,毫秒為單位
#spring.redis.timeout= 18000ms
#
## 集群模式下,集群最大轉發的數量
#spring.redis.cluster.max-redirects=
#
## 集群模式下,逗號分隔的鍵值對(主機:端口)形式的服務器列表
#spring.redis.cluster.nodes=
#
## 哨兵模式下,Redis 主服務器地址
#spring.redis.sentinel.master=
#
## 哨兵模式下,逗號分隔的鍵值對(主機:端口)形式的服務器列表
#spring.redis.sentinel.nodes= 127.0.0.1:5050,127.0.0.1:5060

2.4.自定義配置

  • 1.還可以在 properties 文件中自定義配置,通過@Value("${}")獲取對應屬性值
application.properties 文件
my.website=https://www.baidu.com
  • 2.通過bean實例獲取配置文件中的值:
//某個 Bean
@Value("${my.website}")
private String bdUrl;

三、配置生效:

3.1.分析條件配置規則

  • 1.下面是條件配置規則(@Conditionalxxxxxxx)來決定是否進行啟動的舉例:
    在這里插入圖片描述
    在這里插入圖片描述

3.2.修改SpringBoot的默認配置:

  • 1.官網查看可以配置的屬性
  • 2.SpringBoot默認會在底層配好所有的組件。@ConditionalOnMissingBean注解就實現了如果用戶自己配置了就以用戶的優先
  • 3.如下給容器中加入了文件上傳解析器:
        @Bean@ConditionalOnBean(MultipartResolver.class)  //容器中有這個類型組件@ConditionalOnMissingBean(name = DispatcherServlet.MULTIPART_RESOLVER_BEAN_NAME) //容器中沒有這個名字 multipartResolver 的組件public MultipartResolver multipartResolver(MultipartResolver resolver) {//給@Bean標注的方法傳入了對象參數,這個參數的值就會從容器中找。//SpringMVC multipartResolver。防止有些用戶配置的文件上傳解析器不符合規范// Detect if the user has created a MultipartResolver but named it incorrectlyreturn resolver;}
  • 3.說明:
    • 在@Bean標注的方法multipartResolver()方法上,我們傳入了對象參數,只要配置了參數,這個參數的值就會從容器中找
    • 之所以在容器找事為了防止有些用戶配置的文件上傳解析器不符合規范,然后我們通過查找,然后找到之后就進返回一個符合規范的名稱

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/87292.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/87292.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/87292.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

FPGA學習

一、module : 定義&#xff1a; 是構建數字系統的基本單元&#xff0c;用于封裝電路的結構和行為。它可以表示從簡單的邏輯門到復雜的處理器等任何硬件組件。 1. module 的基本定義 module 模塊名 (端口列表);// 端口聲明input [位寬] 輸入端口1;output [位寬] 輸出端口1;ino…

26-計組-存儲器與Cache機制

一、存儲器與局部性原理 1. 局部性原理 基礎概念&#xff1a; 時間局部性&#xff1a;一個存儲單元被訪問后&#xff0c;短時間內可能再次被訪問&#xff08;例如循環變量&#xff09;。空間局部性&#xff1a;一個存儲單元被訪問后&#xff0c;其附近單元可能在短時間內被訪…

I/O 線程 7.3

前言 以下&#xff1a; 概述 1.基礎 2.代碼演示 3.練習 4.分析題 1.基礎 一、線程基礎概念 并發執行原理 通過時間片輪轉實現多任務"并行"效果 實際為CPU快速切換執行不同線程 線程 vs 進程 線程共享進程地址空間&#xff0c;切換開銷更小 進程擁有獨立資源&am…

MySQL JSON數據類型完全指南:從版本演進到企業實踐的深度對話

&#x1f4ca; MySQL JSON數據類型完全指南&#xff1a;從版本演進到企業實踐的深度對話 在當今數據驅動的時代&#xff0c;MySQL作為最受歡迎的關系型數據庫之一&#xff0c;不斷演進以滿足現代應用的需求。JSON數據類型的引入&#xff0c;讓MySQL在保持關系型數據庫優勢的同時…

BI × 餐飲行業 | 以數據應用重塑全鏈路業務增長路徑

在競爭激烈的餐飲行業中&#xff0c;數據已成為企業保持競爭力的關鍵資產。通過深入分析顧客數據&#xff0c;餐飲企業能夠洞察消費者的需求和偏好&#xff0c;從而提供更加精準和個性化的服務。此外&#xff0c;利用數據優化業務管理&#xff0c;降低成本&#xff0c;并提高運…

【學習線路】機器學習線路概述與內容關鍵點說明

文章目錄 零、機器學習的企業價值一、基礎概念1. 機器學習定義2. 學習類型3. 學習范式 二、核心算法與技術1. 監督學習2. 無監督學習3. 模型評估與優化 三、深度學習與神經網絡1. 神經網絡基礎2. 深度學習框架3. 應用場景 四、工具與實踐1. 數據處理2. 模型部署3. 機器學習的生…

Linux 命令:cp

Linux cp 命令詳細教程 cp 是 Linux 系統中最常用的命令之一&#xff0c;用于復制文件或目錄。它可以將源文件/目錄復制到指定的目標位置&#xff0c;支持批量復制、強制覆蓋、保留文件屬性等功能。下面詳細介紹其用法。資料已經分類整理好&#xff1a;https://pan.quark.cn/s…

java分頁插件| MyBatis-Plus分頁 vs PageHelper分頁:全面對比與最佳實踐

MyBatis-Plus分頁 vs PageHelper分頁&#xff1a;全面對比與最佳實踐 一、分頁技術概述 在Java持久層框架中&#xff0c;分頁是高頻使用的功能。主流方案有&#xff1a; MyBatis-Plus分頁&#xff1a;MyBatis增強工具的內置分頁方案PageHelper分頁&#xff1a;獨立的MyBatis…

PROFINET轉MODBUS TCP網關在機械臂通信操作中的應用研究

在特定的汽車零部件生產工廠焊接生產線上&#xff0c;機械臂被應用于焊接作業&#xff0c;其控制體系基于Profinet協議。同時&#xff0c;工廠的自動化控制體系以西門子S7-1200PLC為核心&#xff0c;通過ModbusTCP協議實現數據交換。為實現焊接過程的自動化控制以及生產數據的實…

Mac中如何Chrome禁用更新[update chflags macos]

寫在前面 在 macOS 系統中&#xff0c;系統更新提示的小紅點常常讓人不勝其擾。 尤其是當你希望保持現有系統的穩定性&#xff0c;或因兼容性問題暫不想升級時&#xff0c;這個小紅點就像一個頑固的提醒。 - windowsMac版直接刪除更新程序, 有效 cd ~/Library/Google/Googl…

LoRA使用-多個LoRA

LoRA的風格分類 不用去記它有什么很特別的風格&#xff0c;簡單來說基礎模型就像一個全能畫手&#xff0c;什么都能畫&#xff0c;而LoRA是在某個風格中經過特訓的它的一個分身。使得它更精通該風格。 關于LoR風格分類&#xff1a;提示詞撰寫公式 Checkpoint&LoRA對比 訓…

牛客刷題 — 【排序】[NOIP2012] 國王的游戲(高精度結構體排序)

1.題面&#xff1a;傳送門 2. 思路&#xff1a; 相鄰的兩個大臣的先后順序只會互相影響&#xff0c;并不會影響其他人的金幣數。 假設前 i-1 個人左手上的數乘積為 s 。 ① 若 A 大臣排在B 大臣的前面&#xff0c;則&#xff1a; s 此時的金幣數最大值為 。 ② 若B大臣排…

grpc 和限流Sentinel

基于gRPC的微服務通信模塊技術方案書 1. 總體架構設計 #mermaid-svg-TiN9cudEfW5mCWHm {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-TiN9cudEfW5mCWHm .error-icon{fill:#552222;}#mermaid-svg-TiN9cudEfW5mCWHm…

經典灰狼算法+編碼器+雙向長短期記憶神經網絡,GWO-Transformer-BiLSTM多變量回歸預測,作者:機器學習之心!

經典灰狼算法編碼器雙向長短期記憶神經網絡&#xff0c;GWO-Transformer-BiLSTM多變量回歸預測&#xff0c;作者&#xff1a;機器學習之心&#xff01; 目錄 經典灰狼算法編碼器雙向長短期記憶神經網絡&#xff0c;GWO-Transformer-BiLSTM多變量回歸預測&#xff0c;作者&#…

VGG Image Annotator (VIA):一款免費的數據標注軟件介紹與使用

VGG Image Annotator (VIA)&#xff1a;一款免費的數據標注軟件介紹與使用 在計算機視覺領域&#xff0c;數據標注是訓練機器學習模型的基礎步驟之一&#xff0c;而標注工具的選擇直接影響標注的效率和準確性。眾多標注工具中&#xff0c;VGG Image Annotator (VIA) 是一個開源…

CSS實現百分比水柱圖

背景 在echarts沒發現有可以直接使用的展示百分比的柱形圖,只好自己封裝一個組件使用 實現思路 一、圖形拆解 要實現的組件是一個 可配置的圓柱形液柱圖組件&#xff0c;常用于展示比例進度&#xff0c;比如任務完成度、指標達成率等。把圖拆成最小單元然后拼接起來&#x…

詳解 rzsz 工具:Windows 與 Linux 文件傳輸

&#xff08;Linux之軟件包管理器&#xff08;CentOS系統&#xff09; —— yum-CSDN博客&#xff09;rzsz工具之前我在這篇文章中介紹過&#xff0c;現在重新詳細介紹一下該工具。rzsz 是一個用于在 Windows 和 Linux 系統之間傳輸文件的工具集&#xff0c;通常通過終端模擬器…

網絡編程1(UDP)

網絡編程套接字&#xff08;socket api&#xff09; 了解了網絡的一些概念&#xff0c;接下來就要進行網絡中的跨主機通信&#xff0c;了解網絡中的一些API&#xff0c;這里談到的API都是針對傳輸層進行的&#xff0c;這是因為我們編寫的代碼是在應用層&#xff0c;而傳輸層就…

【電機】定點線性映射

這是一個定點數線性映射的問題&#xff0c;通常用于將浮點型的物理量&#xff08;如速度、位置、扭矩&#xff09;轉換為嵌入式系統中使用的整型數據格式&#xff0c;便于通過 CAN 總線或其它通信協議發送給電機控制器。 我們來逐步解析這個過程&#xff0c;并以“速度”為例說…

Spring Cloud 微服務(遠程調用與熔斷機制深度解析)

&#x1f4cc; 摘要 在微服務架構中&#xff0c;服務之間的遠程調用是構建分布式系統的核心環節。然而&#xff0c;隨著服務數量的增加和網絡復雜度的提升&#xff0c;調用失敗、延遲高、異常等問題變得越來越頻繁。 為此&#xff0c;Spring Cloud 提供了強大的遠程調用組件 …