【JavaEE】(12) 創建一個 Sring Boot 項目

一、Maven

1、什么是 Maven

? ? ? ? Maven 用于管理項目、管理依賴(通過 POM 文件配置各種各樣的 jar 包)。

????????在沒有 Maven 之前,需要手動 jar 包導入項目。整個流程:從網上查 jar 包并下載到本地(或者叫同事發)>>手動導入 jar 包。

????????并且為了讓團隊中的所有人使用的 jar 包版本相同(不同可能會引發一些問題,比如接口使用方法變更),就會在源代碼(src)文件下增加 lib 文件存放所有的 jar 包,占用空間很大,這就會導致項目在團隊內部傳輸的過程效率低

? ? ? ? 在實際商業項目中,因項目龐大,使用的 jar 包很多,不免會產生依賴沖突(版本不一致)。所以當時程序員的第一個工作就是手動理清依賴關系,導入所有需要的依賴,排依賴

????????而 Maven 只需配置 POM 文件,管理所有依賴,自動從倉庫下載。還能在 IDEA 安裝插件,自動檢測到版本沖突。以及打包項目等操作,都能通過一句 maven 命令完成。

2、創建一個 Maven 項目

? ? ? ? 注意:Maven 和 IDEA 沒有任何關系,可以單獨安裝 Maven,使用 cmd 命令行執行操作(網上找安裝教程,還需要配置環境變量)。只不過 IDEA 集成了 Maven,就不用單獨安裝 Maven 配置環境了。包括 JDK,如果單獨使用 JDK 就需要配置環境變量,通過命令行執行命令。而我們是在 IDEA 中使用 JDK,它已經幫我們自動配置好它的環境了,我們直接用就行。

創建:

項目結構:

maven 命令:

打包:

3、依賴管理

3.1、配置依賴

? ? ? ? 配置 POM 文件。

? ? ? ? 倉庫查詢Maven Repository: Search/Browse/Explorehttps://mvnrepository.com/????????搜索 mysql,獲取 JDBC 驅動的配置代碼:

? ? ? ? 點擊漏洞,查看詳情:說明新的版本移動到了 mysql-connector-j。

? ? ? ? 版本選擇:

  • 指定版本。(例如后續,我們使用 Spring Boot 3.x 及以上,其最低要求 JDK 17)
  • 看團隊用的版本。
  • 沒有漏洞的。
  • 次新版本。(最新版不穩定,可能有坑)

? ? ? ? 我選了一個用的人最多的:

? ? ? ? 這段代碼復制下來,粘貼到 POM:

? ? ? ? 本地倉庫多了兩個 jar 包,一個是 jdbc 驅動,一個是其依賴的 jar 包 protobuf,會自動下載它的依賴(像以前的話,還要手動梳理依賴,然后一個個下載)。

? ? ? ? 這段代碼其實表示,這個 jar 包在中央倉庫中的地址(查詢倉庫會比中央倉庫滯后一點):

? ? ? ? 中央倉庫Central Repository:https://repo1.maven.org/maven2/? ? ? ? 上面這個 jar 包在中央倉庫的地址就是:

3.2、切換本地倉庫的路徑

? ? ? ? 本地倉庫就是本地存放 jar 包的位置:file>>settings>>搜索maven

? ? ? ? 換位置:把這個默認路徑下的 .m 文件復制到指定位置,在?IntelliJ IDEA 2022.1.4\plugins\maven\lib\maven3\conf 有一個 settings.xml,也復制到 .m 文件里面:

? ? ? ? 改路徑,C 盤里下載的 jar 包就可以刪了,節省空間:

? ? ? ? 中央倉庫、本地倉庫、項目之間的關系:

? ? ? ? 有些 jar 包是公司內部用的,會傳到私服,從私服下載,需要用戶名、密碼,可能 settings.xml 或者 pom.xml 里面有,大概長這樣:

3.3、配置國內鏡像源

? ? ? ? 如果從中央倉庫下載很慢,可以在 settings.xml 里設置國內鏡像源(國內的服務器,中央倉庫的復制,從網上找):

3.4、檢查版本沖突的插件

? ? ? ? 檢查沖突的插件:

? ? ? ? 如果我們不想下載某個 jar 包,比如我們用不到 jdbc 驅動 jar 包中依賴的 protobuf jar 包的部分,想排除?protobuf jar 包,設置 POM 文件:

二、Spring Boot

1、什么是 Spring Boot

? ? ? ? Spring Boot 是對 Spring(Spring Framework) 的進一步包裝,另外還增加了其它功能,比 Spring 更好用。

2、安裝 Spring Boot 插件

? ? ? ? 專業版不需要安裝插件,集成了 Sring Boot。社區版需要安裝

? ? ? ? 插件商城搜索 Sring Boot Helper,點擊 homepage 進入插件下載頁面(不要直接 Install,新版本要錢)。

? ? ? ? 下載免費版,對應 IDEA 社區版 2021.1.1-2022.1.4(如果不是這些版本,卸載 IDEA,網上找教程,注意注冊表也要卸載):

? ? ? ? 安裝好后,導入本地插件壓縮包:

? ? ? ? 安裝好的插件不要更新:

? ? ? ? 還有在線版的 Sring Boot:Spring Initializrhttps://start.spring.io/? ? ? ? 跟 IDEA 上一樣的,IDEA 就是從網頁版導入的模板:

? ? ? ? 然后就會把項目下載下來,導入(點擊項目里的 POM)到 IDEA 就行,這種不需要下插件(插件只是用來創建 Spring Boot 項目的而已):

3、創建 Spring Boot 項目

? ? ? ? file>>new>>project:Sring Boot 3.X 版本對應 JDK 17,3.X 以下對應 JDK 8(我用的專業版)。國內鏡像:https://start.aliyun.com/

? ? ? ? 第一創建 Sring Boot 項目會很久,耐心等待,這個插件(用于把第三方的 jar 包也打包進去,跟程序在 IDEA 運行無關,跟 maven 打包有關)可能會有下載不下來的情況:

? ? ? ? 我們需要配置國內鏡像源,需要區分兩種情況,我們需要配置的是 New Projects Stetup,每個項目都從國內鏡像源下載:

? ? ? ? 配置方法跟 Settings 一樣:

? ? ? ? 刷新,下載好后:

? ? ? ? 如果是社區版,這里的 RELEASE 要刪除,中央倉庫沒有這個地址(這個 parent 表示 spring boot 是基于此編寫的):

? ? ? ? 這是專業版,這一塊就是社區版的 parent 包含的內容,作用就是 spring boot 幫我們理清了 sprint boot 需要的所有依賴,并且排包:

? ? ? ? 點進去可以看到,列出了很多依賴:

????????這里的測試代碼是指開發人員寫的(不是測試人員的工作),開發人員要寫單元測試用例。這倆版本號沒寫,是跟 spring boot 一致的,代碼能檢測到。

? ? ? ? 這里可以改文件性質:

? ? ? ? 這也能改:

? ? ? ? 寫一個簡單的代碼啟動項目:

? ? ? ? 啟動類里點擊啟動:

? ? ? ? 這個程序會一直運行:

? ? ? ? 打開瀏覽器訪問:

4、什么是 Web 服務器

? ? ? ? Web 服務器就是對 http 協議進行了包裝,不需要我們去實現包裝請求/響應等操作,我們只需要把程序放到 Web 服務器運行即可。目前常用的 Web 服務器就是 Tomcat,由于 Sring Boot 內置了 Tomcat,所以我們不需要單獨配置 Tomcat。Tomcat 的端口號是 8080,所以訪問我們的程序的端口號也是 8080

? ? ? ? 實際上,Tomcat 上可以運行多個服務(也可以不是 Spring Boot 框架的程序),Spring Boot 也可以不用 Tomcat 部署。但 Tomcat 是內置在 Spring Boot 中的,所以啟動 Sring Boot 項目,本質是啟動了 Tomcat,這個 Tomcat 只能部署這一個項目。因為只部署了一個項目,所以 context path 可以省略

5、常見的訪問出錯情況

? ? ? ? 4 開頭的一般是客戶端錯誤(一般看瀏覽器 url 跟代碼中注解映射的 path 一致不一致),5 開頭的一般是服務器錯誤(一般看瀏覽器頁面提示和?Tomcat 日志,倒著一段一段看)。

5.1、404

? ? ? ? 404 表示資源不存在:

  • url 寫錯了

  • @RestController 注解寫成了?@Controller

5.2、500

? ? ? ? 服務器崩潰。

  • 程序存在異常,沒有處理:

5.3、無法訪問此網站

? ? ? ? 服務器程序未啟動:

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

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

相關文章

最終章【1】Epson機器人篇

1,開發環境 Epson RC 7.5.1 RC90控制器 2,條件分支指令 2.1,If...EndIf,邏輯判斷分支 語法格式: If 條件1 Then 處理邏輯1................ ElseIf 條件2 Then 處理邏輯2................ Else 處理邏輯3................ EndIf 例子: String order$If ord…

vue3 實現web網頁不同分辨率適配

vue3 實現web網頁不同分辨率適配首先這個標題可能不是特別的合適,之前開發了一個網站,那個網站是類似于官網的效果,按照 19201080100% 的分辨率進行開發的,但是在開發完成之后,發現有的電腦是 19201080125% 的大小展示…

電子電路原理學習筆記---第5章特殊用途二極管---第2天

5.5閱讀數據手冊圖5-15給出了1N957B和1N4728A系列的齊納二極管數據手冊中的數據,再后面的討論中將參考這些數據。數據手冊中大部分信息是提供給電路設計者的,但有些內容在故障診斷和測試時也有必要了解。5.5.1最大功率齊納二極管的功率等于它對應的電壓與…

實現一個二維碼讓 iOS 和 Android 用戶自動跳轉到對應下載鏈接

實現一個二維碼讓 iOS 和 Android 用戶自動跳轉到對應下載鏈接 背景 開發一個APP后,需要分發Android測試包和iOS TestFlight的場景,但為兩個端分別生成二維碼,需要為二維碼標識系統以免導致用戶掃錯碼。如何實現一個二維碼讓 iOS 和 Androi…

Docker中ES安裝分詞器

1、下載好的文件上傳到虛擬機或者云服務器 https://release.infinilabs.com/analysis-ik/stable/ elasticsearch-analysis-ik-8.10.4.zip 2、將本地 ZIP 文件復制到容器內的臨時目錄(如 /tmp/) docker cp /data/elasticsearch-analysis-ik-8.10.4.zip e…

掌握while循環:C語言編程基礎

目錄 一、while循環簡介 二、if和while的對比 語法結構對比: 實際代碼對比: 三、while語句的執行流程 while循環的執行流程如下: 流程圖表示: 四、while循環實踐 練習:在屏幕上打印1~10的值 五、進階練習 題…

XML Schemas 簡介

XML Schemas 簡介 引言 XML(可擴展標記語言)是互聯網上用于數據交換的一種標準標記語言。隨著互聯網技術的飛速發展,XML因其靈活性和可擴展性而被廣泛應用于各種領域。XML Schemas(XML模式)作為一種定義XML文檔結構的機制,為XML文檔提供了嚴格的規范,確保了數據的準確…

Gradle(二)Gradle的優勢、項目結構介紹

目錄一、什么是 Gradle?二、為什么選擇 Gradle?三、Gradle 的項目結構3.1 項目結構3.2 gradle wrapper 包裝器3.3 settings.gradle 設置文件3.4 build.gradle 核心構建文件1)原始文件內容2)plugins 插件3)repositories…

機器學習-決策樹(上)

決策樹構建: 決策樹的結構與python中的二叉樹結構(PY數據結構-樹)相似,不過決策樹中除了葉節點之外的其他節點,都被稱之為“決策節點”,構建決策樹的過程,也就是選取每一個節點采用哪一個特征作為劃分依據的過程。 以…

一周學會Matplotlib3 Python 數據可視化-繪制直方圖(Histogram)

鋒哥原創的Matplotlib3 Python數據可視化視頻教程: 2026版 Matplotlib3 Python 數據可視化 視頻教程(無廢話版) 玩命更新中~_嗶哩嗶哩_bilibili 課程介紹 本課程講解利用python進行數據可視化 科研繪圖-Matplotlib,學習Matplotlib圖形參數基本設置&…

uni-app之刪除沒用的文件,搭建頁面

文章目錄一、初始化項目1.1 初始化index.vue1.2 刪除無用文件1.3 初始化后的目錄結果如下二、文件目錄分析2.1 核心文件2.2 關鍵文件夾?2.3 其他文件2.4 注意事項??三、創建頁面(pages)3.1 創建home頁面3.2 創建其他頁面3.3 查看pages.json3.4 刪除index頁面和pages.json的配…

99、【OS】【Nuttx】【構建】cmake 配置實操:問題解決

【聲明】本博客所有內容均為個人業余時間創作,所述技術案例均來自公開開源項目(如Github,Apache基金會),不涉及任何企業機密或未公開技術,如有侵權請聯系刪除 背景 接之前 blog 【OS】【Nuttx】【構建】cm…

2007-2023年各省環境保護支出統計數據

數據介紹 環境保護支出是指政府和企業為改善生態環境質量、防治污染、保護自然資源所投入的資金,涵蓋污染防治、生態修復、環境管理等多方面。污染防治支出、生態保護支出、環境管理事務、資源節約與循環利用等,當前環保支出仍面臨區域不平衡、隱性債務…

PyCharm(2025.1.3.1)綁定 Conda 環境

1. Pycharm 右下角,選擇( 如圖所示 )2. Path to conda 這里選擇如圖所示的這個文件( 在你下載的 Anaconda 文件里 ),之后在 Enviroment 中就可以看到你新創建的環境了

Liunx文件系統詳解

目錄 1.磁盤 1.1 概念 1.2 磁盤物理結構 1.3 磁盤的存儲結構 1.4 磁盤的邏輯結構 1.5 CHS && LBA地址 2.基礎文件系統 2.1 塊 ?編輯 2.2 分區 2.3 inode 3.ext2 ?件系統 3.1 宏觀認識 3.2 Block Group 3.3塊組內部構成 3.3.1 超級塊(Supe…

Mac如何安裝telnet命令

Mac如何安裝telnet命令_mac telnet-CSDN博客

【SpringBoot】持久層 sql 注入問題

目錄 概述 #{} 與 ${} 概述 前端惡意傳參,改變后端 sql 語句的語法結構,從而使后端給前端返回一些私密的數據。這種安全問題往往是因為沒有嚴格過濾參數,或者后端代碼不嚴謹導致的。 #{} 與 ${} 在 MyBatis 框架中,#{} 與 ${} 都…

怎么寫好漢語言文學專業的論文?

磨刀不誤砍柴功, 前期多看文章和文獻,吸取寫作經驗,寫作過程會更加順利噢!看到最后,相信你能得到收獲! 寫漢語言專業論文并不難,從選題、資料準備、框架搭建、正文寫作、修改定稿五個核心環節展…

MySQL User表入門教程

一、User表概述 MySQL的user表位于mysql系統數據庫中,是MySQL權限系統的核心,用于存儲用戶賬戶信息、認證方式和全局權限。通過操作此表,可實現用戶創建、權限分配及安全審計。 二、User表核心字段解析字段名作用示例值Host用戶允許連接的主機…

[NPUCTF2020]這是什么覓

題目是一個文件,我們先以記事本打開一下,開頭就是PK,基本可以確定這是一個 ZIP 格式的壓縮包?,不確定可以用winhex打開:?50 4B 03 04開頭則 100% 是 ZIP 文件。改一下后綴之后解壓得到一張圖片上面是日期&#xff0c…