SpringBoot概述及項目的創建使用

文章目錄

  • 一. Spring Boot概述
    • 1. 什么是Spring Boot?
    • 2. Spring Boot的優點
  • 二. Spring Boot項目的創建
    • 1. 使用IDEA創建
      • 1.1. 準備工作
      • 1.2. 創建運行Spring Boot項目
      • 1.3. 進行Web交互
      • 1.4. 目錄工程介紹
      • 1.5. 項目快速添加依賴
      • 1.6. 防止配置文件亂碼所需的配置
      • 1.7. SpringBoot熱部署
    • 2. 使用網頁創建SpringBoot項目

一. Spring Boot概述

1. 什么是Spring Boot?

Spring 是為了簡化 Java 程序開發而誕生的,而 Spring Boot 是為了簡化 Spring 項目的開發而誕生的。

Spring Boot 直接翻譯過來就是 Spring 腳手架的意思,平時我們我們也能常見到在建造房屋等建筑時腳手架這種工具是很常見的,建筑行業的腳?架的作用是砌筑磚墻,澆筑混凝?,?便墻?抹灰,裝飾和粉刷的,也就是說使用腳手架可以提高建房的效率。

img

而我們這里也一樣,Spring 腳手架,它就能夠提高開發 Spring 項目的效率。

2. Spring Boot的優點

  • 快速集成框架,Spring Boot 提供了啟動添加依賴的功能,用于秒級集成各種框架。
  • 內置運行容器,無需配置 Tomcat 等 Web 容器,直接運行和部署程序。
  • 快速部署項目,無需外部容器即可啟動并運行項目。
  • 可以完全拋棄繁瑣的 XML,使用注解和配置的方式進行開發。
  • 支持更多的監控的指標,可以更好的了解項目的運行情況。

二. Spring Boot項目的創建

1. 使用IDEA創建

1.1. 準備工作

首先看你的 IDEA 是社區版還是專業版,專業版是無需額外安轉插件的,直接創建 SpringBoot 項目即可。

而社區版 IDEA 中沒有內置 Spring Boot 項目創建的插件,此時就需要下載第三方插件Spring Boot Helper來創建Spring Boot項目。

插件安裝步驟:
1??第一步,從IDEA找到Setting設置。
img
2??第二步,找到插件選項,搜索安裝后重新啟動 IDEA 即可。
img
對于專業版的 IDEA,本身內置的插件這個插件了,社區版安裝好插件后和專業版就大同小異了,看下面的介紹,以社區版為例。

1.2. 創建運行Spring Boot項目

1??第一步,新建項目,選擇你常用的 jdk 版本,現在穩定的有 8,11,17 三個版本,我這里用的是 jdk1.8。
img
2??第二步,選擇 Java 版本(一定要選擇本地存在的 jdk 版本)和項目類型,然后next。
img

3??第三步,選擇 Spring Boot 版本,要注意使用 jdk1.8 的話只能選擇 版本為2.x.x的,后面沒有字母的是穩定版。
img

4??第四步,添加需要的依賴,看選項選擇即可,然后 next。

img
img
5??第五步,設置項目名稱與路徑,設置好后點擊 Finish 即可。
img

6??第六步,添加 Maven 工具,社區版打開項目后,右側沒有 Maven 需要我們手動添加,這是因為社區版 IDEA 不能識別該項目為 Maven 項目,專業版沒有這個問題。

img

img

要注意 IDEA 社區版是有一些 Bug 的,在 pom.xml 文件中,我們要選擇的 springboot 版本是2.7.14,但它加的是2.7.14.RELEASE,我們把后面的RELEASE刪除即可,專業版是沒有這個問題的。

img
7??第七步,刷新等待項目加載完成,直到 SpringBoot 項目的啟動類DemoApplication圖標變藍為止。

imgimg

第一次加載時間可能有點久,如果加載失敗,先看 Maven 配置的是不是國內源,試著重新加載幾次,實在不行,再將 SpringBoot 的源成換國內的阿里源試一試。
img
所謂啟動類就是帶有@SpringBootApplication注解的那個類。
img
點擊運行按鈕,顯示下圖中的結果就表示 SpringBoot 項目創建成功了。
img

8??第八步,創建完 SpringBoot 項目之后我們還可以刪除一些沒有用的目錄,不影響使用。

img

1.3. 進行Web交互

我們寫一個程序,當瀏覽器訪問路徑時,在網頁上輸出網頁上顯示Hello,SpringBoot!,如果能夠成功顯示到瀏覽器的話才表示我們創建項目創建完全沒有問題。

要注意在 SpringBoot 項目中,我們創建的類必須在啟動類同級目錄或者子級目錄下,這樣才能被被框架識別掃描到,因為在 Spring Boot 項目中是不需要配置掃描路徑的,只需要將類創建在指定目錄下即可,這也是 SpringBoot 項目的一個特點,約定大于配置(相較于 Spring 配置較少,在 Spring 中需要配置 Bean 的掃描路徑的,而 Spring Boot 中不需要,放到約定的路徑下即可)。

package com.example.springboot.controller;import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;@Controller
public class TestController {@ResponseBody   // 不加默認返回一個頁面, 這是歷史問題, 返回一個非靜態頁面數據,可以加到類上也可以加到方法上@RequestMapping("/hello")public static String sayHi() {return "Hello, SpringBoot!";}
}

啟動程序。

img
🍂訪問結果:
img

我們再嘗試將TestController移動到非啟動類目錄下,重新運行程序,訪問路徑。

img

🍂訪問結果:

此時我們訪問時,就報 404 了,這就說明此時 Spring Boot 項?沒有將 TestController 對象注?到容器中。
img

1.4. 目錄工程介紹

Spring Boot 項?有兩個主要的?錄:

①src/main/java 為 Java 源代碼。

②src/main/resources 為靜態資源或配置?件:

  • /static:靜態資源?件夾;
  • /templates:模版資源?件夾。

img

1.5. 項目快速添加依賴

1??第一步,我們需要一個插件EditStarters,在 IDEA 插件設置中,下載安裝,然后重啟IDEA。
img

2??第二步,找到pom.xml文件,右鍵選擇Generate
img
3??第三步,選擇剛剛下載的插件那個選項。
img
4??第四步,設置數據源,用默認就行。
img
5??第五步,添加/修改依賴。
img

1.6. 防止配置文件亂碼所需的配置

打開Setting,找到如下圖所在目錄,將所有的編碼格式改為utf8
img

上面這一步只是設置了當前項目,我們還需要針對新項目做出同樣的設置。
img
設置改好之后,需要刪除配置文件重新創建,就不會出現亂碼了。

1.7. SpringBoot熱部署

1??第一步,在pom.xml中添加spring-boot-devtools依賴。

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><scope>runtime</scope><optional>true</optional>
</dependency>

2??第二步,打開Setting,開啟項目自動編譯。

img

3??第三步,在Setting中開啟項目運行中進行熱部署(其實就是自動重啟 IDEA)。

img

4??第四步,再針對新項目完成上面第二步設置即可,之所以不設置第三步是因為Advanced Settings選項只有在File->Settings里面才有,只能在當前項目設置,而在File->New Projects Setup->Settings for New Projects這個設置頁面里是沒有的,所以需要我們在新項目中自己手動再去設置。
img

2. 使用網頁創建SpringBoot項目

1??第一步,打開SpringBoot項目創建網站:https://start.spring.io/

img
2??第二步,配置項目,按照下圖配置即可,與在IDEA創建及其類似。
img
3??第三步,選擇必要的依賴。
img

img
4??第四步,點擊創建按鈕(點擊一次即可,不然會下載多個 SpringBoot 的zip包)。
img
然后就會生成一個壓縮包,自動下載到本地。
img
5??第五步,解壓后通過 IDEA 打開即可。
img

此時項目也是可以運行的。
img

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

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

相關文章

Docker實戰專欄簡介

&#x1f337;&#x1f341; 博主貓頭虎 帶您 Go to New World.?&#x1f341; &#x1f984; 博客首頁——貓頭虎的博客&#x1f390; &#x1f433;《面試題大全專欄》 文章圖文并茂&#x1f995;生動形象&#x1f996;簡單易學&#xff01;歡迎大家來踩踩~&#x1f33a; &a…

【iMessage蘋果推?IM推送】群控腳本當Apple APNS推送服務器從您的應用程序接吸收注冊消息時,它將為您回到一串devicetoken

推薦內容IMESSGAE相關 作者??IMEAE推薦內容iMessage蘋果推軟件 *** 點擊即可查看作者要求內容信息作者??IMEAE推薦內容1.家庭推內容 *** 點擊即可查看作者要求內容信息作者??IMEAE推薦內容2.相冊推 *** 點擊即可查看作者要求內容信息作者??IMEAE推薦內容3.日歷推 *** …

Rust軟件外包開發語言的特點

Rust 是一種系統級編程語言&#xff0c;強調性能、安全性和并發性的編程語言&#xff0c;適用于廣泛的應用領域&#xff0c;特別是那些需要高度可靠性和高性能的場景。下面和大家分享 Rust 語言的一些主要特點以及適用的場合&#xff0c;希望對大家有所幫助。北京木奇移動技術有…

MongoDB:簡單的增刪改查操作

一.概述 本篇文章介紹在Navicat中對MongoDB數據庫進行增刪改查操作,在后面會介紹在Spring Boot中使用MongoTemplate對MongoDB數據庫進行相關操作.如有必要可以先看看前面幾篇文章. MongoDB:MySQL,Redis,ES,MongoDB的應用場景 MongoDB:數據庫初步應用 二.在Navicat進行增刪改…

linux系統服務學習(七)NFS服務、DHCP服務

文章目錄 一、NFS服務概述1、任務背景2、環境準備3、NFS概述4、NFS組成5、與NFS相關的軟件包6、安裝NFS軟件7、NFS的配置文件 二、NFS實驗1、搭建NFS服務器2、編寫NFS主配置文件3、啟動相關的NFS服務4、搭建Web服務器5、在Web服務器中掛載NFS6、上傳aws.mp4視頻到NFS服務器的/s…

人工智能學習框架—飛槳Paddle人工智能

1.人工智能框架 機器學習的三要素&#xff1a;模型、學習策略、優化算法。 當我們用機器學習來解決一些模式識別任務時&#xff0c;一般的流程包含以下幾個步驟&#xff1a; 1.1.淺層學習和深度學習 淺層學習(Shallow Learning)&#xff1a;不涉及特征學習&#xff0c;其特征…

Vue3 setup中使用$refs

在 Vue 3 中的 Composition API 中&#xff0c;$refs 并不直接可用于 setup 函數。這是因為 $refs 是 Vue 2 的實例屬性&#xff0c;而在 Vue 3 中&#xff0c;setup 函數是與模板實例分離的&#xff0c;不再使用實例屬性。 實際工作中確實有需求&#xff0c;在setup 函數使用…

迪瑞克斯拉算法

迪銳克斯拉算法 簡單來說就是在有向圖中&#xff0c;給定一個圖中具體的出發點&#xff0c;從這個點出發能夠到達的所有的點&#xff0c;每個點的最短距離是多少。到不了的點&#xff0c;距離則是正無窮。有向&#xff0c;無負權重&#xff0c;可以有環。 所以說&#xff0c;迪…

流媒體服務-傳輸延時(SEI插幀)

什么是延時 很多小伙伴認為&#xff0c;當推流端和拉流端顯示的時間不一致&#xff0c;即為延時。 其實這種看法是比較片面的&#xff0c;不同的播放器&#xff0c;對同一路流進行測試&#xff0c;可能會得到不同的結果。 一般來說&#xff0c;延時為以下幾個部分的累加組成 …

【Android】解決Lint found fatal errors while assembling a release target

報錯信息&#xff1a; Android在debug模式下打包沒有問題&#xff0c;但是在打包release版本時出現一下問題&#xff1a; 結果圖 原因 我項目的原因是因為把正式、測試地址放到代碼里了&#xff0c;忘記選中正式環境的地址&#xff0c;導致打正式包有問題&#xff1b;大家如果…

Shell編程學習之變量的使用

查看當前系統使用的命令解釋器&#xff1a; linuxubuntu:~$ echo $SHELL /bin/bashshell命令&#xff1a;在終端上使用的命令&#xff0c;例如 vi a.cgcc a.c./a.outshell腳本&#xff1a;其是一個.sh文件&#xff0c;里面都是命令的集合&#xff0c;以及一些復雜的邏輯&#…

RuntimeException詳解

當我們談論Java編程中的異常處理時&#xff0c;RuntimeException是一個關鍵的概念&#xff0c;它在代碼開發和維護中扮演著重要的角色。本文將深入探討RuntimeException&#xff0c;了解它的特點、使用場景以及如何在代碼中處理它。 什么是RuntimeException&#xff1f; 在Ja…

復合 類型

字符串和切片 切片 切片的作用是允許你引用集合中部分連續的元素序列&#xff0c;而不是引用整個集合。 例如&#xff1a; let s String::from("hello world");let hello &s[0..5]; // 切片 [0,5) 等效于&s[..5] let world &s[6..11]; // 切片…

線性動態規劃入門之挖地雷

P2196 [NOIP1996 提高組] 挖地雷 - 洛谷 | 計算機科學教育新生態 (luogu.com.cn) 這個題有點坑&#xff0c;就是說你只能往下挖&#xff0c;可以理解成單項路徑。比如1與3之間是1代表1可以到3而3不可以到1。所以我們來思考dp把。怎么寫&#xff1f;我們這么想假設1與2&#xf…

gitee上傳一個本地項目到一個空倉庫

gitee上傳一個本地項目到一個空倉庫 引入 比如&#xff0c;你現在本地下載了一個半成品的框架&#xff0c;現在想要把這個本地項目放到gitee的倉庫上&#xff0c;這時就需要我們來做到把這個本地項目上傳到gitee上了。 具體步驟 1. 登錄碼云 地址&#xff1a;https://gite…

【Pytroch】基于支持向量機算法的數據分類預測(Excel可直接替換數據)

【Pytroch】基于支持向量機算法的數據分類預測(Excel可直接替換數據) 1.模型原理2.數學公式3.文件結構4.Excel數據5.下載地址6.完整代碼7.運行結果1.模型原理 支持向量機(Support Vector Machine,SVM)是一種強大的監督學習算法,用于二分類和多分類問題。它的主要思想是找…

【數據結構】樹和二叉樹的概念及結構

1.樹概念及結構 1.1樹的概念 樹是一種非線性的數據結構&#xff0c;它是由n&#xff08;n>0&#xff09;個有限結點組成一個具有層次關系的集合。把它叫做樹是因為它看起來像一棵倒掛的樹&#xff0c;也就是說它是根朝上&#xff0c;而葉朝下的。 有一個特殊的結點&#…

Spring Boot 中的 AOP,到底是 JDK 動態代理還是 Cglib 動態代理

大家都知道&#xff0c;AOP 底層是動態代理&#xff0c;而 Java 中的動態代理有兩種實現方式&#xff1a; 基于 JDK 的動態代理 基于 Cglib 的動態代理 這兩者最大的區別在于基于 JDK 的動態代理需要被代理的對象有接口&#xff0c;而基于 Cglib 的動態代理并不需要被代理對…

list

目錄 迭代器 介紹 種類 本質 介紹 模擬實現 注意點 代碼 迭代器 介紹 在C中&#xff0c;迭代器&#xff08;Iterators&#xff09;是一種用于遍歷容器&#xff08;如數組、vector、list等&#xff09;中元素的工具 無論容器的具體實現細節如何,訪問容器中的元素的方…

在ubuntu中將dict.txt導入到數據庫sqlite3

將dict.txt導入到數據庫 #include <head.h> #include <sqlite3.h> int do_insert(int i,char *str,sqlite3 *db); int main(int argc, const char *argv[]) {//創建泵打開一個數據庫sqlite3 *db NULL;if(sqlite3_open("./my.db",&db) ! SQLITE_OK){…