springboot基礎篇(快速入門+要點總結)

目錄

一、SpringBoot簡介

二、創建SpringBoot(通過Idea腳手架搭建項目)

三、properties配置文件

?properties 配置文件說明

①. properties 基本語法

②. 讀取配置?件

③. properties 缺點

2. yml 配置?件說明

①. yml 基本語法

②. yml 使用進階

四、日志框架

在程序中得到日志對象

使用日志對象打印日志

日志級別?

日志持久化


一、SpringBoot簡介

在開始了解Spring Boot之前,需要先了解Spring,因為Spring Boot的誕生是和Spring息息相關的,Spring Boot是Spring發展到一定程度的產物,但是Spring Boot并不是spring的替代品,Spring Boot是為了讓程序員根號的使用Spring而產生的。Spring Boot稱之為搭建程序的腳手架,最主要的作用就是幫助我們快速搭建龐大的spring項目,進而減少一些xml的配置,做到開箱即用的效果。

Spring Boot的優勢

  • 快速集成框架,Spring Boot提供了添加啟動依賴功能,用于快速使項目集成各種框架。

  • 內置tomcat容器,無需配置web容器,直接運行和部署程序。

  • 快速部署項目,無需外部容器,打成jar包,快速啟動運行項目。

  • 不需要繁瑣的xml配置,使用注解和配置的方式快速開發。

二、創建SpringBoot(通過Idea腳手架搭建項目)

現在我們來說一下,如何在Idea上直接搭建SpringBoot項目:

1. 在左側列表選擇Spring Initializer,代表這是一個Spring Boot項目

2. 項目來源地址,因為spring是國外的服務器,所以我們通常使用阿里云的網站來搭建會快一點。

3. 點擊設置,更改URL為:https://start.aliyun.com/

然后輸入我們的項目名稱Name,還有一個Java版本,打包類型,然后點擊Next

1. 選擇Spring Boot項目,由于這是國內鏡像,阿里云的版本一般比官網低一點

2. 同樣,我們在搜索框里搜索我們需要添加的依賴,比如說這里添加一個web依賴。然后直接點擊Finish

點擊Finish之后會直接打開我們剛剛創建的項目,可以看到這里還加了一個demo給我們,

OK,我們直接運行,出現下面頁面也是代表我們構建運行項目成功。

熱部署:

根據上面的步驟,我們已經完成了?Spring Boot項目的創建和運行,但是有一個問題就是,每次修改代碼后都需要重新啟動代碼才會生效,可以配置熱部署來解決這個問題。

熱部署的配置如下:

這樣修改對于我們修改web資源,可以立即生效,對于修改java代碼,部分生效?

三、properties配置文件

配置文件作用:

整改項目中所有重要的數據都在配置文件中配置的,比如:

  • 數據庫的連接信息(包含用戶名和密碼的設置)

  • 項目的啟動端口

  • 第三方系統的調用密鑰信息等

  • 用發現和定位問題的普通日志和異常日志等

配置文件的格式:

.properties
.yml

理論上來講 .properties 可以和 .yml 共存,但實際的業務當中,我們通常會采取?種統?的配置?件格式,這樣可以更好的維護(降低故障率)。當 properties 和 yml ?起存在?個項?中時, .properties 配置?件的優先級最?,但加載完 .properties ?件之后,也會加載 .yml ?件的配置信息。

?properties 配置文件說明

properties 配置?件是最早期的配置?件格式,也是創建 Spring Boot 項?默認的配置?件。

①. properties 基本語法

properties 是以鍵值的形式配置的,key 和 value 之間是以 “=” 連接的。

# 配置項?端?號
server.port=8084
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/dbname?characterEncoding=utf8
spring.datasource.username=root
spring.datasource.password=root

②. 讀取配置?件

使? @Value 注解來實現。@Value 注解使? “${}” 的格式讀取。

@Component
public class ReadYml {@Value("${server.port}")private String port;
?@PostConstructpublic void postConstruct() {System.out.println("Read YML,port:" + port);}
}

?

③. properties 缺點

properties 配置是以 key-value 的形式配置的,properties 配置?件中會有很多的冗余的信息。

2. yml 配置?件說明

yml 是 YAML 是縮寫,它的全稱 Yet Another Markup Language 翻譯成中?就是“另?種標記語?”。

yml 優點分析:

  • yml 是?個可讀性?,寫法簡單、易于理解,它的語法和 JSON 語?類似。

  • yml ?持更多的數據類型,它可以簡單表達清單(數組)、散列表,標量等數據形態。它使?空?符號縮進和?量依賴外觀的特?,特別適合?來表達或編輯數據結構、各種配置?件等。

  • yml ?持更多的編程語?,它不?是 Java 中可以使?在 Golang、PHP、Python、Ruby、JavaScript、Perl 中。

①. yml 基本語法

yml 是樹形結構的配置?件,它的基礎語法是“key: value”,注意 key 和 value 之間使?英?冒汗加空格的?式組成的,其中的空格不可省略

spring:datasource:url: jdbc:mysql://127.0.0.0:3306/dbname?characterEncoding=utf8username: rootpassword: root

?

②. yml 使用進階

yml 配置不同數據類型及 null

# 字符串
value1: Hello
# 布爾值,true或false
value2: true
value3: false
# 整數
value4: 10
value: 0b1010_0111_0100_1010_1110 # ?進制
# 浮點數
value5: 3.14159
value6: 314159e-5 # 科學計數法
# Null,~代表null
value7: ~

?

對于基本數據類型直接 key: value 即可。

yml 讀取配置的?式和 properties 相同,使? @Value 注解即可

@Component
public class ReadYml {@Value("${value1}")private String hello;@PostConstructpublic void postConstruct() {System.out.println("Read YML,Hello:" + hello);}
?
}

?

四、日志框架

日志的作用

日志是程序的重要組成部分,程序在生產環境中報錯了,不讓你打開控制臺看日志,那么你應該怎么查看報錯日志呢,因此日志框架對于我們程序員來說至關重要。

日志框架除了發現和定位問題之外,還可以通過日志實現如下功能;

  • 記錄用戶的登錄日志,方便分析用戶是正常登錄還是惡意破解的用戶。

  • 記錄系統的操作日志,方便數據回復和定位操作人。

  • 記錄程序的執行時間,方便優化程序提供數據支持。

日志怎么用??

Spring Boot 項目在啟動的時候默認就有日志輸出,如下圖所示

1.Spring Boot 內置了日志框架(不然也輸出不了日志)。

2.默認情況下,輸出的日志并非是開發者定義和打印的,那開發者怎么在程序中自定義打印日志呢?

3.日志默認是打印在控制臺上的,而控制臺的日志是不能被保存的,那么怎么把日志永久的保存下來呢??

在程序中得到日志對象

在程序中獲取日志對象需要使用日志工廠 LoggerFactory,如下代碼所示:

// 1.得到日志對象
private static Logger logger = LoggerFactory.getLogger(UserController.class);

注意:Logger 對象是屬于 org.slf4j 包下的,不要導入錯包。

因為 Spring Boot 中內置了日志框架 Slf4j,所以咱們可以直接在程序中調用 slf4j 來輸出日志

使用日志對象打印日志
// 2.使用日志打印日志logger.info("--------------要輸出日志的內容----------------");
日志級別?

日志的級別分為:

  • trace:微量,少許的意思,級別最低;

  • info:普通的打印信息;

  • debug:需要調試時候的關鍵信息打印;

  • warn:警告,不影響使用,但需要注意的問題;

  • error:錯誤信息,級別較高的錯誤日志信息;

  • fatal:致命的,因為代碼異常導致程序退出執行的事件。

日志級別配置只需要在配置文件中設置“logging.level”配置項即可,如下所示:

longging:level:root:?error

配置跟路徑的日志級別。

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
@RequestMapping("/user")
public class UserController {
// 1.得到日志對象
private static Logger logger =
LoggerFactory.getLogger(UserController.class);
@Value("${server.port}")
private String port;
@Value("${spring.datasource.url}")
private String url;
@RequestMapping("/sayhi")
public String sayHi() {
// 2.使用日志打印日志
logger.trace("================= trace ===============");
logger.debug("================= debug ===============");
logger.info("================= info ===============");
logger.warn("================= warn ===============");
logger.error("================= error ===============");
return "Hi," + url;
}
}

默認日志輸出級別 清除掉配置文件中的日志設置,觀察控制臺輸入的日志級別。

得到以下結論,日志的輸出級別,默認是 info。

日志持久化

以上的日志都是輸出在控制臺上的,然而在生產環境上咱們需要將日志保存下來,以便出現問題之后追溯問 題,把日志保存下來的過程就叫做持久化。想要將日志進行持久化,只需要在配置文件中指定日志的存儲目錄或者是指定日志保存文件名之后,Spring Boot 就會將控制臺的日志寫到相應的目錄或文件下了。配置日志文件的保存路徑:

logging:?file://設置日志文件的目錄path:?D:\home\logs//設置日志文件的文件名name:?D:\home\logs\spring-1024.log??

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

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

相關文章

上海AI lab發布MathBench,GPT-4o的數學能力有多強?

大模型數學能力哪家強? 最近,上海AI lab構建了一個全面的多語言數學基準——MathBench。與現有的基準不同的是,MathBench涵蓋從小學、初中、高中、大學不同難度,從基礎算術題到高階微積分、統計學、概率論等豐富類別的數學題目&a…

React項目知識積累(五)

1.dispatch、dev派發 src/models/formStatus.js: const FromStatusModel {namespace: "fromStatus",state: {isDisable: false,},reducers: {saveIsDisable(state, { payload }) {return {...state,...payload,};},}, };export default FromStatusModel; 改變和提…

【Linux】升級make(版本4.4.1)、升級gdb(版本14.1)、升級autoconf(版本2.71)

centos7升級make(版本4.4.1): make:編譯和構建工具。Linux中很多軟件包需要make編譯構建。官網:Make - GNU Project - Free Software Foundation 本次升級前的make版本是3.82,準備安裝的版本是4.4.1。make…

【Delphi 開箱即用 4】動態切換主題皮膚(明亮 or 暗黑)

Delphi的原始窗口界面看起來并不夠吸引人。嘗試下載并安裝第三方皮膚可能會導致應用程序尺寸急劇增加,并且可能會出現不穩定的情況。事實上,Delphi自帶了皮膚功能,完全可以滿足我們對窗口界面的美化需求,并且還支持動態切換皮膚。…

Hive的Sort by Order by Distribute by Cluster by

sort by是分區內排序,一個Reduce對一個Map的數據排序,效率高。 order by是全局排序,一個Reduce對所有Map內的數據排序,效率低。 distribute by 是對數據分區,根據字段哈希值取模來劃分到不容的MR內。注意哈希碰撞 哈…

Python I/O操作筆記

打開文件: 使用 open() 函數,其中文件路徑可以是相對路徑或絕對路徑。 模式除了常見的 r(只讀)、w(寫入,會覆蓋原有內容)、a(追加)外,還有一些其他組合模式&…

基于springboot實現旅游管理系統項目【項目源碼+論文說明】計算機畢業設計

基于springboot實現旅游管理系統演示 摘要 現代經濟快節奏發展以及不斷完善升級的信息化技術,讓傳統數據信息的管理升級為軟件存儲,歸納,集中處理數據信息的管理方式。本旅游管理系統就是在這樣的大環境下誕生,其可以幫助使用者在…

周報 | 24.5.20-24.5.26文章匯總

為了更好地整理文章和發表接下來的文章,以后每周都匯總一份周報。 OpenCV與AI深度學習 | YOLOv8自定義數據集訓練實現火焰和煙霧檢測(代碼數據集!)-CSDN博客 周報 | 24.5.13-24.5.19文章匯總-CSDN博客 DeepDriving | 目標檢測中…

來自Java的“菱形繼承“,你聽說過嗎?

一、菱形繼承的概念 菱形繼承又叫做鉆石繼承,指的是不同的類同時繼承自相同的父類,存在一個子類同時繼承這些不同的類,即我們常說的“多繼承”問題。 例如:B類和C類分別繼承A類,而D類同時繼承B類和C類。 如此圖所示 二…

Oladance、韶音、南卡開放式耳機選哪個?2024年主流產品硬核測評!

近期,不少朋友向我咨詢關于挑選開放式耳機的建議,希望找到既適合自己又具有高品質的選項。鑒于市場上開放式耳機品牌繁多,每款產品在音質、佩戴感受及整體性能上的表現各有千秋,正確選擇一款耳機成為了音樂愛好者們關注的焦點。錯…

R繪圖學習筆記

1、R語言繪制海岸線邊界 參考: Drawing beautiful maps programmatically with R, sf and ggplot2 — Part 1: Basics 使用R繪制世界地圖及緯度統計圖 Drawing maps with R. A basic tutorial:https://dr2blog.hcommons.org/2020/03/23/drawing-maps-wit…

【408精華知識】指令字長、存儲字長、機器字長大總結!

文章目錄 一、三種字長二、三種字長之間的關系三、三種字長與部件位數之間的關系 一、三種字長 機器字長:等于字長,CPU一次能夠處理的數據的位數。通常等于寄存器、ALU的位數。例子:windows 64位/32位,這里的64位和32位指的就是該…

Pycharm最新安裝教程(最新更新時間2024年5月27日)

ps:本教程Pycharm安裝,最新更新時間:2024年5月27日,公眾號持續更新關注公眾號防失聯哦 Pycharm 再次更新了一個小版本。又回到老話題,2023.3.2這個版本是否還能安裝,筆者也親測了一下。還是沿用本站之前的…

Livox-SDK2 用vs2017編譯

Livox-SDK2 Livox-SDK2代碼去上面下載,文章中給出的是用vs2019進行編譯的,生成項目時用的 > cmake .. -G "Visual Studio 16 2019" -A x64 但如果我想用vs2017進行編譯,那么只需要將上面語句改為如下: cmake .. -…

企業網絡中的網絡故障排除

目錄 什么是網絡故障排除? 企業網絡中常見的網絡問題 網絡故障排除的步驟 1. 確認問題 2. 數據收集 3. 分析和診斷 4. 實施解決方案 5. 驗證和監控 常用的網絡故障排除工具 如何預防網絡故障 結論 在當今高度互聯的企業環境中,網絡的可靠性和…

PostgreSQL的擴展(extensions)-常用的擴展之pg_store_plans

PostgreSQL的擴展(extensions)-常用的擴展之pg_store_plans pg_store_plans 是一個 PostgreSQL 擴展,用于捕獲查詢執行計劃(execution plans)并將其存儲在數據庫中。通過存儲和分析這些執行計劃,數據庫管理…

Spring IOC容器與Bean管理詳解

一.IOC與DI 1. 傳統的開發方式區別 對象直接引用導致對象硬性關聯,程序難以擴展維護 loC容器是Spring生態的地基,用于統─創建與管理對象依賴 2. Spring IOC 控制反轉 loC控制反轉,全稱Inverse of Control,是一種設計理念 由代理人來創建與管理對象,消費者通…

請允許自己偶爾情緒不穩定

最近看網上的討論,發現一件事:許多人都把「情緒穩定」當作一個很難得的優點,狂熱地去追捧。 什么叫情緒穩定呢?大抵指這些: 遇到問題時不容易發火或沮喪,而是能立刻切換成解決問題的視角; 心情…

Windows系統使用Docker部署Focalboard團隊協作工具詳細流程

文章目錄 前言1. 使用Docker本地部署Focalboard1.1 在Windows中安裝 Docker1.2 使用Docker部署Focalboard 2. 安裝Cpolar內網穿透工具3. 實現公網訪問Focalboard4. 固定Focalboard公網地址 前言 本篇文章將介紹如何使用Docker本地部署Focalboard項目管理工具,并且結…

鎧俠KIOXIA KCD81PJE7T68 E3.S PCIe 5.0 NVMe 企業級SSD

今天介紹一下我們的新產品KCD81PJE7T68,這款企業級NVMe固態硬盤將為您的關鍵任務應用帶來出色的性能和可靠支持。 提升業務效能 提速至關鍵 在當今高度數字化的商業環境中,企業對于數據存儲系統的性能要求愈加苛刻。無論是大數據分析、人工智能訓練,還是虛擬化和聯…