1_Springboot(一)入門

Springboot(一)——入門

本章重點:

1.什么是Springboot;

2.使用Springboot搭建web項目;

一、Springboot

1.Springboot產生的背景

Servlet->Struts2->Spring->SpringMVC,技術發展過程中,對使用者來說越來越簡單,成本越來越低。

假設讓你使用Spring開發一個簡單的Hello World Web應用程序,你該做什么?

  • 一個項目結構,其中有一個包含必要依賴的Maven構建文件,最起碼要有Spring MVC和Servlet API這些依賴。
  • 一個web.xml文件(或者一個WebApplicationInitializer實現),其中聲明了Spring的DispatcherServlet。
  • 一個啟用了Spring MVC的Spring配置。
  • 一個控制器類,以“Hello World”響應HTTP請求。
  • 一個用于部署應用程序的Web應用服務器,比如Tomcat。

最讓人難以接受的是,這份清單里只有一個東西是和Hello World功能相關的,即控制器,剩下的都是Spring開發的Web應用程序必需的通用樣板。既然所有Spring Web應用程序都要用到它們,那為什么還要你來提供這些東西呢?

問題:Spring框架存在了大量的xml配置文件和依賴關系,為了解決這些問題,出現了Springboot框架。

2.什么是Springboot

隨著動態語言的流行(Ruby、Groovy、Scala、 Node.js),Java的開發顯得格外的笨重:繁多的配置、低下的開發效率、復雜的部署流程以及第三方技術集成難度大。在上述環境下,Spring Boot應運而生。

Spring Boot是Spring平臺的一個全新的框架。目的是簡化Spring框架應用中的初始化搭建和開發過程。Spring Boot基于Spring4進行的設計。它使用“習慣優于配置”(項目中存在大量的配置,此外還內置一個習慣性的配置,讓你無須手動進行配置)的理念讓你的項目快速運行起來。使用Spring Boot很容易創建一個獨立運行(運行jar,內嵌Servlet容器)、準生產級別的基于Spring框架的項目,使用Spring Boot你可以不用或者只需要很少的Spring配置。

3.Spring Boot核心功能

  1. 獨立運行的Spring項目

    Spring Boot可以以jar包的形式獨立運行,運行一個Spring Boot項目只需通過java–jar xx.jar來運行。

  2. 內嵌Servlet容器

    Spring Boot可選擇內嵌Tomcat、Jetty或者Undertow,這樣我們無須以war包形式部署項目。

  3. 提供starter簡化Maven配置

    Spring提供了一系列的starter pom來簡化Maven的依賴加載,例如,當你使用了spring-boot-starter-web時,會自動加入如圖1-1所示的依賴包。

    ![外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳](https://img-home.csdnimg.cn/images/20230724024159.png?origin_url=1_Springboot(%E4%B8%80&pos_id=img-WVg6WQBE-1709293695144)入門.assets/S1 (0).png)

  4. 自動配置Spring

    Spring Boot會根據在類路徑中的jar包、類,為jar包里的類自動配置Bean,這樣會極大地減少我們要使用的配置。當然,Spring Boot只是考慮了大多數的開發場景,并不是所有的場景,若在實際開發中我們需要自動配置Bean,而Spring Boot沒有提供支持,則可以自定義自動配置。

  5. 準生產的應用監控

    Spring Boot提供基于http、ssh、telnet對運行時的項目進行監控。

  6. 無代碼生成和xml配置

    Spring Boot的神奇的不是借助于代碼生成來實現的,而是通過條件注解來實現的,這是Spring 4.x提供的新特性,在3.5節有過簡單的演示,本章將用大量的篇幅講解Spring Boot實現的核心技術。

    Spring 4.x提倡使用Java配置和注解配置組合,而Spring Boot不需要任何xml配置即可實現Spring的所有配置。

4.使用Sptingboot的好處

  1. 快速構建項目,無需xml配置文件;

  2. 無需手動管理jar包的依賴關系,使用Maven來進行統一管理;

  3. 無需外部服務器,有內置的tomcat服務器,可以直接啟動項目;

  4. 配置熱部署和自動啟動;

  5. 對主流開發框架的無配置集成;

  6. 提供運行時的應用監控;

  7. 極大地提高了開發、部署效率;

  8. 與云計算的天然集成。

二、使用Springboot搭建web項目

1.創建項目maven項目;

![外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳](https://img-home.csdnimg.cn/images/20230724024159.png?origin_url=1_Springboot(%E4%B8%80&pos_id=img-CHHxOazC-1709293695148)入門.assets/S1 (1).png)

![外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳](https://img-home.csdnimg.cn/images/20230724024159.png?origin_url=1_Springboot(%E4%B8%80&pos_id=img-MdfkKYWh-1709293695149)入門.assets/S1 (2).png)

![外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳](https://img-home.csdnimg.cn/images/20230724024159.png?origin_url=1_Springboot(%E4%B8%80&pos_id=img-ij2T0ygb-1709293695150)入門.assets/S1 (3).png)

2.在pom.xml文件中添加Springboot依賴關系

	<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-parent</artifactId><version>2.0.5.RELEASE</version></parent><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId></dependency></dependencies>

3.創建Springboot項目的啟動類

注:啟動類必須在最外層

![外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳](https://img-home.csdnimg.cn/images/20230724024159.png?origin_url=1_Springboot(%E4%B8%80&pos_id=img-D5zoq37i-1709293695153)入門.assets/S1 (4).png)

4.編寫Controller層

@RestController
public class FirstController {@RequestMapping("hello")public String hello(){return "Hello";}
}

@RestController標注這個程序是一個控制器,在瀏覽器中訪問應用目錄/hello,返回字符串”Hello“。

5.啟動服務進行訪問

http://localhost:8080/test/hi

springboot內置tomcat默認端口號為8080,項目路徑“”

一個控制器,在瀏覽器中訪問應用目錄/hello,返回字符串”Hello“。

5.啟動服務進行訪問

http://localhost:8080/test/hi

springboot內置tomcat默認端口號為8080,項目路徑“”

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

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

相關文章

大模型量化技術原理-SmoothQuant

近年來&#xff0c;隨著Transformer、MOE架構的提出&#xff0c;使得深度學習模型輕松突破上萬億規模參數&#xff0c;從而導致模型變得越來越大&#xff0c;因此&#xff0c;我們需要一些大模型壓縮技術來降低模型部署的成本&#xff0c;并提升模型的推理性能。 模型壓縮主要分…

強化學習(六)時序差分

時序差分&#xff08;TD&#xff09;是強化學習的核心&#xff0c;其是蒙特卡羅&#xff08;MC&#xff09;和動態規劃&#xff08;DP&#xff09;的結合。 1、TD 預測 TD 和 MC 都是利用經驗來解決預測問題。一種非平穩環境的一般訪問蒙特卡羅方法是 V ( S t ) ← V ( S t …

Python GUI開發庫之nicegui使用詳解

概要 在 Python 中,創建圖形用戶界面(GUI)應用程序通常需要大量的代碼和時間。然而,隨著 Python 生態系統的不斷發展,出現了一些簡化 GUI 開發過程的工具和庫。其中之一就是 NiceGUI 庫。本文將深入探討 NiceGUI 庫的功能、用法以及如何利用它來創建漂亮而功能豐富的 GUI…

如何使用css實現一個加載動畫

如何使用css實現一個加載動畫 有四個點 初始化為同一個顏色 每個階段 不同的透明度 刷新也不會影響初始化 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthd…

List 集合遍歷過程中刪除元素避坑指南。

文章目錄 1. 遍歷2. 遍歷過程中刪除元素2.1 for 簡單循環正向遍歷方式2.2 for 簡單循環反向遍歷方式2.3 foreach 方式遍歷刪除2.4 Iterator的remove()方法2.5 <font color green> removeIf() &#xff08;推薦&#xff09;<green>2.6 Strem 方式 作為一名后端開發…

python之計算CPI

CPI&#xff0c;即消費者物價指數&#xff08;Consumer Price Index&#xff09;&#xff0c;是一個反映居民家庭一般所購買的消費品和服務項目價格水平變動情況的宏觀經濟指標。它是在特定時段內度量一組代表性消費商品及服務項目的價格水平隨時間而變動的相對數&#xff0c;通…

網絡測試相關

前言 網絡測試通常是指在網絡環境比較復雜&#xff0c;而且有較多限制時&#xff0c;就需要清楚網絡的走向和途徑的節點&#xff0c;便于在出現問題時進行排查和優化網絡性能&#xff0c;相關知識大多是計算機網絡的 測試工具 抓包 wireshark 路由探測 traceroute/tracert 這…

云快充充電樁系統設計書

充電樁系統設計書 一、系統設計概述 隨著新能源汽車市場的快速發展&#xff0c;充電樁作為電動汽車的重要配套設施&#xff0c;其市場需求日益增長。本系統旨在提供一套穩定、高效、易用的充電樁解決方案&#xff0c;以滿足市場上新能源充電樁的主流需求。通過實現云快充V1.6協…

nginx使用詳解--動靜分離

什么是動靜分離&#xff1f; 為了提高網站的響應速度&#xff0c;減輕程序服務器&#xff08;Tomcat&#xff0c;Jboss等&#xff09;的負載&#xff0c;對于靜態資源&#xff0c;如圖片、js、css等文件&#xff0c;可以在反向代理服務器中進行緩存&#xff0c;這樣瀏覽器在請…

如何選擇激活函數?

選擇神經網絡的激活函數是一個重要的決策&#xff0c;因為激活函數的選擇會影響到網絡的收斂速度以及能否有效地訓練。不同的激活函數適用于不同的任務和網絡架構。以下是選擇激活函數時可以考慮的一些指導原則和常用的激活函數&#xff1a; 指導原則 問題類型&#xff1a; 二…

LLM小記

RAG 參考 檢索增強生成(RAG)概念及優化 主流模型 llama系列 1. 背景&#xff1a;模型參數量級的積累&#xff0c;或者訓練數據的增加&#xff0c;哪個對性能提升幫助更大&#xff1f; 最近的 “Training Compute-Optimal Large Language Models” 這篇論文提出一種縮放定…

Java:PDF圖片抽取的兩種方法

圖片和PDF是我們日常生活和工作中經常接觸到的文檔格式。PDF是人們日常使用最多的跨平臺文檔&#xff0c;是一種用獨立于應用程序、硬件、操作系統的方式呈現文檔的文件格式。每個PDF文件包含固定布局的平面文檔的完整描述&#xff0c;包括文本、字形、圖形及其他需要顯示的信息…

如何利用HubSpot海外獲客系統實現海外市場擴張?

在當今全球化的時代&#xff0c;企業面臨著越來越激烈的競爭&#xff0c;而海外市場則被視為獲取更多增長機會的重要途徑之一。針對這一挑戰&#xff0c;企業需要建立一個完整的海外獲客系統&#xff0c;而HubSpot軟件的應用則成為了關鍵。作為HubSpot的合作伙伴&#xff0c;我…

librtmp源碼分析

閱讀了librtmp的源碼&#xff0c;簡單記錄下。 首先補充下AMF格式基本知識 1 AMF格式 AMF是Action Message Format(動作消息格式)的簡寫&#xff0c;它是一種二進制的數據格式。它的設計是為了把actionscript里面的數據(包括Object, Array, Boolean, Number等)序列化成二進制…

jvm 基礎知識和jvm 調優

類裝載分為以下 5 個步驟&#xff1a; 加載&#xff1a;根據查找路徑找到相應的 class 文件然后導入&#xff1b; 檢查&#xff1a;檢查加載的 class 文件的正確性&#xff1b; 準備&#xff1a;給類中的靜態變量分配內存空間&#xff1b; 解析&#xff1a;虛擬機將常量池中的符…

C# 異步返回類型詳解

在現代軟件開發中&#xff0c;異步編程已經成為一種重要的編程范式&#xff0c;尤其是在需要與I/O密集型操作交互的上下文中&#xff0c;比如網絡請求、數據庫操作等。C# 語言提供了強大的異步支持&#xff0c;使得異步編程變得更加簡單和直觀。本文將詳細介紹C#中異步返回類型…

vue3學習 【5】watch的使用

什么是watch 當我們需要根據一個數據的變化來進行一些操作的時候我們需要使用偵聽器&#xff0c;它能夠在響應式數據發生變化的時候觸發提供的回調函數 基礎偵聽 watch 可以偵聽不同的數據源。例如&#xff1a; ref計算屬性響應式對象getter函數多個數據源組層的數據 cons…

20240229金融讀報:央行阿拉善創新融資模式與碳排放權交易條例實施,新春政策聚焦新生產力及金融風險防范

1、人民銀行阿拉善盟分行實例&#xff1a;再貸款產業鏈&#xff08;活體牲畜抵押貸款牲畜死亡率保險&#xff09;、“再貸款新型農牧業經營主體”&#xff08;基礎設施薄弱、產業結構單一&#xff0c;籌集資金創辦嘎查集體經濟股份合作社貸款&#xff09; 2、建設銀行實例&…

oracle11安裝及使用

安裝oracle11 官網下載地址 Oracle Database 11g Release 2 for Microsoft Windows (x64) 官網下載慢可訪問我的資源 也可以網盤獲取 鏈接&#xff1a;https://pan.baidu.com/s/1RDrGkqDA7tfKRnpJXUBMDw 提取碼&#xff1a;z3na 上傳安裝包到服務器 在指定目錄下創建文件…

adb命令

1. 常用命令&#xff1a; adb devices #查看連接設備adb -s cf27456f shell # 指定連接設備使用命令adb install test.apk # 安裝應用adb install -r demo.apk #安裝apk 到sd 卡&#xff1a;adb uninstall cn.com.test.mobile #卸載應用&#xff0c;需要指定包adb uninstall -…