SpringBoot快速上手

SpringBoot快速上手

環境準備

IDEA版本:

社區版:2021.1-2022.1.4

專業版:無要求

Maven

官方對于Maven的描述:

Maven是一個項目管理工具,基于POM(Project Object Model,項目對象模型)的概念,Maven可以通過一小段描述信息來管理項目的構建,報告文檔和項目管理工具軟件.

人話:Maven是一個項目管理工具,通過pom.xml文件配置獲取jar包,而不用手動去添加jar包.

1.項目構建

Maven是一個工具,和idea沒有關系,只是idea把Maven集成了,上圖出現的是Maven的命令.

2.依賴管理

每次添加完依賴之后,修改完POM文件之后,都需要點擊這個刷新,讓依賴下載并加載

這段代碼(jar包的地址)我們稱為:"坐標"

3.依賴傳遞

比如我們現在使用的這個MySQL的依賴,我們想讓它發揮作用,其實這個包當中還依賴了其他的包

(有沒有發現我的界面不一樣了?我偷偷搞了個專業版(小聲嘟囔))

就像這里我們根據依賴分析可以看到,MySQL這里還依賴了另外一個包.這種現象就是"依賴傳遞"

4.依賴排除

我們可以通過

<exclusions><exclusion>

給排除掉

這個時候我的這個項目當中就沒有這個包了.

那什么時候需要用到依賴排除呢?

當上圖兩個jarC版本不同的時候.

使用依賴排除是,大多使用場景是為了"解決沖突".

這里如果是社區版就需要安裝 Maven helper 插件

Maven概念

1.坐標

根據描述,可以找到jar包所在倉庫的位置

2.倉庫

1.中央倉庫

Central Repository:

下面是常用的倉庫代理網站

https://mvnrepository.com/

2.本地倉庫

中央倉庫中下載的jar包都會存到本地計算機的本地倉庫中.

這就是本地倉庫的地址.

該地址不要包含中文

如果你要修改該地址,那就需要把 .m2 文件夾下面的內容全部 copy 到你想要的路徑下.(復制整個.m2文件夾)

由于它在我C盤拉的屎不多,所以這里我沒有改.

3.私服

私服:私有服務器

通常具有一定的權限,某個企業或機構私有的,不愿意公開的.

私服是企業的,所以有一個jar包如果私服不存在,就去中央倉庫去下載,一個組織中,只要有一個人下載,就可以了,其他人可以從私服中訪問了.

配置這個setting就可以了.

4.配置國內源

在setting,xml中的<mirror>中添加這一段阿里云的鏡像地址即可.

<mirror><id>aliyunmaven</id><mirrorOf>central</mirrorOf><name>阿?云公共倉庫</name><url>http://maven.aliyun.com/nexus/content/groups/public/</url></mirror>

如果直接在 idea 的 setting 中進行配置,那么當前配置只在當前項目中生效,如何讓以后得項目也生效呢?

需要在這里進行配置.

創建項目

如果你是專業版

這里就有

如果你是社區版

安裝插件

注意這里不要點擊直接下載,因為要收費.

去下載這個版本的,但是這個版本的插件要求你的idea是2021.1-2022.1.4,所以版本不對的,要重新下載一下idea

下載好之后是一個壓縮包,不要解壓,放在一個你想放的地方

安裝好之后重啟idea,你就可以在創建項目這里找到他了.

我們要在這里用Java8,但是如果你發現你的idea中沒有Java8,那么只需要將上面這個地址改為阿里云的即可

https://start.aliyun.com

(此處借鑒其他博主的博客,原鏈接:Idea顯示找不到Java8版本_java version沒有顯示java8-CSDN博客)

上述圖片描述的是選擇spring的版本以及依賴

社區版這里會有BUG,將后面RELEASE去掉然后重新加載maven即可

注意:這里的版本是會經常發生變化的,我們只要選擇2這個大版本以及穩定的小版本即可.

會自動創建啟動類,直接運行啟動即可

綠色框住的只是示例,刪除即可.

hello,word

Spring是一個框架,為了簡化Java開發.

SpringBoot是基于Spring的一個框架,是為了簡化Spring項目而誕生的.

項目特點

在POM文件這里我們發現,有好多依賴他沒有版本標簽

按住Ctrl鼠標移到上面我們發現出現了版本號

原因:在SpringBoot項目中,依賴也是有父類的.

這是它的父類的POM文件.

這樣做的好處是,我們不需要管理依賴的版本了,SpringBoot會自動的幫我們管理

代碼分析

這四個文件是沒有用的,可以直接刪除掉.

問題

如果出現了這個報錯,是因為你選擇的是SpringBoot3.X的版本,SpringBoot3.x的版本會自動的使用JDK17,我們一直使用的格式JDK8,那么怎么解決呢?

需要確認4個地方

第一個

第二個

第三個

第四個

將SpringBoot版本改為2.X的版本

包下載不下來

1.確認包是否真的存在

復制包名去maven倉庫確認.

倉庫地址:Central Repository:

去中央倉庫時搜索的內容

去中央倉庫代理網站是搜索

2.如果包存在,多下載幾次

3.如果下載很多次都下載不下來

確認是否配置了國內源,看settings.xml是否配置國內源.

路徑不能有中文

刪除本地倉庫的jar包,重新下載.

可能存在的一個問題是,上次下載時因為網絡等問題,造成jar包下載了一半.

隔一段時間再下載.

目錄介紹

idea:idea的配置文件

src:代碼文件

Java:源代碼

resources:資源目錄,主要是配置相關的代碼

static:靜態文件

application.properties:SpringBoot項目的配置文件.

test:測試代碼(注意:這里面放的是開發人員的測試代碼,與測試人員無關)

target:編譯代碼(自動生成)

pom.xml:maven的配置文件

一些細節

兩個Java的顏色是不一樣的

那當你把這里的名字改了之后,就不想讓它叫Java,就想改個名字,怎么辦?

如果改了名字但是不進行上圖操作,代碼是運行不起來的.

但是一般我們不會去改的.

修改文件名:通過idea提供的方式來修改

好處:

1.idea會幫我們查找相關的代碼

2.idea會進行提示

3.idea會幫我們把關聯的文件名相關的代碼全部修改.

觀察啟動日志

SpringBoot項目內置了Tomcat,端口號是8080,不需要再去配置了.

在SpringBoot項目中不需要content path,只需要servlet path(就是我們自己寫的那個路徑).

從日志中也可以看到content path是空的.

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

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

相關文章

GitHub Actions workflow最佳實踐

使用 GitHub Actions Workflow 時&#xff0c;遵循最佳實踐可以顯著提升自動化效率、安全性和可維護性。以下是經過實踐驗證的核心最佳實踐&#xff0c;涵蓋配置設計、性能優化、安全防護等維度&#xff0c;并附具體示例&#xff1a; 一、工作流組織與觸發優化 1. 拆分工作流&a…

JAVA讀取項目內的文件或圖片

一、讀取resources下的文件或圖片&#xff1b;文件或圖片位置&#xff1a;代碼&#xff1a;InputStream fis Thread.currentThread().getContextClassLoader().getResourceAsStream("template/" xxx.jpg);二、讀取項目內任意位置的文件或圖片。文件或圖片位置&…

Python如何將兩個列表轉化為一個字典

一、使用zip函數 zip函數是Python內置的一個強大工具&#xff0c;它可以將多個迭代器&#xff08;如列表、元組等&#xff09;“壓縮”成一個迭代器&#xff0c;其中每個元素都是一個元組。使用zip函數將兩個列表轉換為字典是最常見的方法。 1、基本用法 keys [a, b, c] value…

Vue 3 useModel vs defineModel:選擇正確的雙向綁定方案

&#x1f4d6; 概述 useModel() 是 Vue 3.4 版本中引入的一個組合式 API 輔助函數&#xff0c;它是驅動 defineModel() 的底層實現。這個函數主要用于在非單文件組件中實現雙向數據綁定&#xff0c;特別是在使用原始的 setup() 函數時。 ?? 重要提示&#xff1a;如果使用 <…

數據庫備份sql文件過大,phpAdmin無法執行Sql

數據庫導出為sql文件&#xff0c;文件太大導致無法再Sql query執行&#xff0c;可使用命令行執行&#xff1a; windows系統&#xff1a; 1.切換到mysql 安裝目錄的bin目錄下 cd C:\xampp\mysql\bin 2.執行備份sql還原mysql數據庫 mysql -u root -p databasename < C://backu…

三格電子——ModbusTCP 轉 Profinet 主站網關應用實例

型號&#xff1a;SG-TCP- Profinet(M)一、使用場景ModbusTCPClient 通過 ModbusTCP 控制 Profinet 接口設備&#xff0c; Profinet 接口設備接入DCS/工控機等。產品是ModbusTCP和Profinet(M)網關&#xff08;以下簡稱網關&#xff09;&#xff0c;使用數據映射 方式工作。 本產…

網址賬號正確,密碼錯誤返回的狀態碼是多少

問題網址賬號正確&#xff0c;密碼錯誤返回的狀態碼是多少我的回答當賬號正確但密碼錯誤時&#xff0c;服務器通常會返回401 Unauthorized狀態碼。這個狀態碼表示"未授權"&#xff0c;意味著客戶端請求缺乏有效的身份驗證憑據&#xff0c;或者提供的憑據無效。在實際…

JAVA核心基礎篇-操作符

Java 操作符是用于操作變量和值的特殊符號&#xff0c;主要分為以下幾類&#xff1a;1. 算術運算符用于執行基本的數學運算&#xff1a;&#xff1a;加法&#xff08;也可用于字符串拼接&#xff09;-&#xff1a;減法*&#xff1a;乘法/&#xff1a;除法&#xff08;整數相除取…

數據庫字段類型深度解析:從關系型到 NoSQL 的全面指南

數據庫字段類型深度解析&#xff1a;從關系型到 NoSQL 的全面指南 一、引言&#xff1a;數據庫字段類型的重要性 在現代軟件開發和數據管理中&#xff0c;數據庫作為核心組件&#xff0c;其性能、可擴展性和數據完整性在很大程度上取決于字段類型的選擇。作為專業的開發者和數據…

藍牙aoa倉庫管理系統功能介紹

在現代倉儲物流的快節奏運作中&#xff0c;高效管理倉庫人員的位置與行動軌跡&#xff0c;成為提升整體運營效率的關鍵。藍牙AOA&#xff08;Angle of Arrival&#xff0c;信號到達角&#xff09;技術應運而生&#xff0c;以其獨特的優勢和強大的功能&#xff0c;為倉庫人員定位…

【輕量級密碼算法】當安全遇上資源瓶頸:輕量級加密為何成為 IoT 時代的剛需?

在智能家居的場景中&#xff0c;當你輕觸智能門鎖的指紋識別區域&#xff0c;期望它能快速響應并解鎖時&#xff0c;你是否想過在這短短幾秒內&#xff0c;門鎖內部的微控制器&#xff08;MCU&#xff09;正在進行著復雜的安全驗證操作&#xff1f;然而&#xff0c;對于大多數資…

嵌入式開發學習———Linux環境下網絡編程學習(四)

數據庫簡介數據庫是結構化數據的集合&#xff0c;用于高效存儲、檢索和管理數據。常見的數據庫類型包括關系型&#xff08;如MySQL、SQLite&#xff09;和非關系型&#xff08;如MongoDB&#xff09;。關系型數據庫使用表格形式存儲數據&#xff0c;并通過SQL&#xff08;結構化…

在 CentOS 7 上搭建 OpenTenBase 集群:從源碼到生產環境的全流程指南

目 錄什么是OpenTenBaseOpenTenBase源碼編譯安裝安裝依賴創建opentenbase用戶源碼獲取編譯安裝初始化數據庫初始化數據庫集群啟動與停止服務基本使用示例開機自啟動配置總結官網教程鏈接什么是OpenTenBase OpenTenBase 是一個提供寫可靠性&#xff0c;多主節點數據同步的關系數…

LoRaWAN網絡部署全流程:從方案設計到實際落地的關鍵要點

一、覆蓋范圍&#xff1a;從理論到實踐 LoRaWAN的覆蓋距離在理論上可達15公里&#xff0c;但實際部署受地形和環境影響極大。 城市環境中&#xff0c;密集的建筑群和多徑效應常常使網關有效覆蓋半徑縮小至3至5公里&#xff1b;在空曠的農村或農田場景中&#xff0c;覆蓋范圍可提…

portswigger labs XXE漏洞利用實戰

lab1 利用外部實體注入獲取文件解決此 lab 需要讀取到/etc/passwd<!DOCTYPE test [ <!ENTITY cmd SYSTEM "file:///etc/passwd"> ]> <productId>&cmd;</productId>lab2 利用 XXE 執行 SSRF 攻擊通過構造 xxe 請求特定的 url 獲取目錄拼接…

深入理解 hash -r:解決 Linux 命令緩存難題的關鍵密鑰

前言&#xff1a;在 Linux 終端的日常操作中&#xff0c;你是否遇到過這樣的詭異場景&#xff1a;明明已經升級或切換了軟件版本&#xff08;比如 Node.js 從舊版更新到新版 &#xff09;&#xff0c;但執行命令時&#xff0c;系統卻像被“施了魔法”&#xff0c;依舊執著地調用…

onnx入門教程(二)—— PyTorch 轉 ONNX 詳解

在這一節里&#xff0c;我們將詳細介紹 PyTorch 到 ONNX 的轉換函數—— torch.onnx.export。我們希望大家能夠更加靈活地使用這個模型轉換接口&#xff0c;并通過了解它的實現原理來更好地應對該函數的報錯&#xff08;由于模型部署的兼容性問題&#xff0c;部署復雜模型時該函…

嵌入式LINUX——————網絡TCP

一、TCP連接1.TCP特點&#xff1a;&#xff08;1&#xff09;面向鏈接&#xff08;2&#xff09;面向字節流&#xff08;3&#xff09;安全可靠的傳輸協議&#xff0c;因為會先建立連接&#xff08;4&#xff09;占用資源開銷大&#xff0c;效率低&#xff0c;實時性不佳&#…

alicloud 阿里云有哪些日志 審計日志

1: 阿里有哪些audit log: Audit Related Logs Below table describe the logs available in Log Service that might be applicable to the Security Operations Team. 2: 怎么來分析呢? Overview Its recommended to built a program with SLS Consumer Group which real…

如何理解AP服務發現協議中“如果某項服務需要被配置為可通過多個不同的網絡接口進行訪問,則應為每個網絡接口使用一個獨立的客戶端服務實例”?

上一句&#xff1a;[PRS_SOMEIPSD_00238]◎ 「如果某項服務需要在多個網絡接口上提供&#xff0c;則應為每個網絡接口使用一個獨立的服務器服務實例。」(RS_SOMEIPSD_00003) 本句&#xff1a;[PRS_SOMEIPSD_00239] 「如果某項服務需要被配置為可通過多個不同的網絡接口進行訪問…