SpringBoot官網建置、快速啟動的問題怎麼解決
SpringBoot概述
#SpringBoot
是由Pivotal團隊提供的全新框架,其設計目的是用來簡化Spring應用的初始建置以及開發流程。
大家已經感受了SpringBoot
程序,回過頭看看SpringBoot
主要作用是什麼,就是簡化Spring
的搭建過程和開發過程。
原始Spring
環境建置與開發有下列問題:
#配置繁瑣依賴
- ##設定繁瑣
SpringBoot 程式優點恰巧就是針對
Spring 的缺點
- ## 自動配置。這個是用來解決
- Spring
程式配置繁瑣的問題
#開始依賴。這個是用來解決 - Spring
程式依賴設定繁瑣的問題
輔助功能(內建伺服器,…)。我們在啟動 - SpringBoot
程式時既沒有使用本地的
tomcat
也沒有使用tomcat
插件,而是使用SpringBoot
內建的伺服器。 接下來我們來說一下
的起始依賴起始依賴
我們使用
Spring Initializr 方式建立的Maven
工程的的pom.xml
設定檔中自動產生了許多包含starter
的依賴,如下圖
#這些依賴就是啟動依賴,接下來我們探討他是如何實現的。
探索父工程
從上面的檔案可以看到指定了一個父工程,我們進入到父工程,發現父工程中又指定了一個父工程,如下圖所示
再進入到該父工程中,在該工程中我們可以看到配置內容結構如下圖所示
上圖中的
標籤中定義了各個技術軟體依賴的版本,避免了我們在使用不同軟體技術時考慮版本的相容問題。在properties
我們找servlet
和mysql
的版本如下圖
##dependencyManagement
groupid 和
artifactId 不需要定義
version 。
而
build
看完了父工程中 pom.xml
version。
探索依賴
pom.xml
中配置瞭如下依賴進入到該依賴,查看pom.xml
裡面的引入了spring-web
spring-webmvc 的依賴,這就是為什麼我們的工程中沒有依賴這兩個套件還能正常使用
springMVC 中的註解的原因。
而依賴
spring-boot-starter-tomcat
tomcat,所以我們的工程才能正常啟動。
結論:以後需要使用技術,只需要引入該技術對應的起始依賴即可
#SpringBoot
- 中常見專案名稱,定義了目前專案使用的所有專案座標,以達到減少依賴配置的目的
-
parent
所有
SpringBoot- 項目要繼承的項目,定義了若干個座標版本號(依賴管理,而非依賴),以達到減少依賴衝突的目的
spring-boot-starter-parent
(2.5.0)與spring-boot-starter-parent
(2.4.6)共57處座標版本不同
實際開發
使用任意座標時,僅書寫GAV中的G和A,V由SpringBoot提供
G:groupid
A:artifactId
V:version
如發生座標錯誤,再指定version(要小心版本衝突)
程式啟動
創建的每一個SpringBoot
程式時都包含一個類似於下面的類,我們將這個類別稱為引導類別
@SpringBootApplication public class Springboot01QuickstartApplication { public static void main(String[] args) { SpringApplication.run(Springboot01QuickstartApplication.class, args); } }
注意:
SpringBoot
在建立專案時,採用jar的打包方式SpringBoot
的引導類別是專案的入口,運行main
方法就可以啟動專案
#因為我們在pom.xml
中配置了spring-boot-starter-web
依賴,而該依賴透過前面的學習知道它依賴tomcat
,所以運行main
方法就可以使用tomcat
啟動咱們的工程。
切換web伺服器
現在我們啟動工程使用的是tomcat
伺服器,那能不能不使用tomcat
而使用jetty
伺服器,jetty
在我們maven
進階時講maven
私服使用的伺服器。而要切換 web
伺服器就需要將預設的 tomcat
伺服器給排除掉,要怎麼排除呢?使用 exclusion
標籤
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <exclusions> <exclusion> <artifactId>spring-boot-starter-tomcat</artifactId> <groupId>org.springframework.boot</groupId> </exclusion> </exclusions> </dependency>
現在我們執行引導類別可以嗎?運行一下試試,列印的日誌資訊如下
程式直接停止了,為什麼呢?那是因為排除了 tomcat
伺服器,程式中就沒有伺服器了。所以此時不光要排除 tomcat
伺服器,也要引進 jetty
伺服器。在pom.xml
中因為jetty
的起步依賴
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jetty</artifactId> </dependency>
接下來再次運行引導類,在日誌資訊中就可以看到使用的是 jetty
伺服器
小結:
透過切換伺服器,我們不難發現在使用SpringBoot
換技術時只需要導入技術的起步依賴即可。
spring與springboot的比較
我們前文做完入門案例後,可以發現兩者有很大的不同:
座標
Spring
程式中的座標需要自己寫,而且座標非常多-
SpringBoot
程式中的座標是我們在建立工程時勾選自動產生的
##web3.0設定類別
Spring
程式需要自己寫這個配置類別。這個配置類別大家之前寫過,肯定感覺很複雜
SpringBoot
程式不需要我們自己書寫
#配置類別
Spring/SpringMVC 程式的設定類別需要自己書寫。而
SpringBoot 程式則不需要書寫。
注意:基於Idea的
Spring Initializr 快速建置 SpringBoot
工程時需要連網。
官網建置工程
在入門案例中之所以能快速建構SpringBoot
工程,是因為
使用了官網提供了快速建構SpringBoot
進入SpringBoot官網
進入到
SpringBoot
#然後點擊
Spring Initializr
超連結就會跳到如下頁面
生成工程
以上步骤完成后就可以生成 SpringBoot
工程了。在页面的最下方点击 GENERATE CTRL + 回车
按钮生成工程并下载到本地,如下图所示
打开下载好的压缩包可以看到工程结构和使用 Idea
生成的一模一样,如下图
而打开 pom.xml
文件,里面也包含了父工程和 Spring Web
的依赖。
通过上面官网的操作,我们知道 Idea
中快速构建 SpringBoot
工程其实就是使用的官网的快速构建组件,那以后即使没有 Idea
也可以使用官网的方式构建 SpringBoot
工程。
SpringBoot工程快速启动
问题引入
以后我们和前端开发人员协同开发,而前端开发人员需要测试前端程序就需要后端开启服务器,这就受制于后端开发人员。为了摆脱这个受制,前端开发人员尝试着在自己电脑上安装 Tomcat
和 Idea
,在自己电脑上启动后端程序,这显然不现实。
我们后端可以将 SpringBoot
工程打成 jar
包,该 jar
包运行不依赖于 Tomcat
和 Idea
这些工具也可以正常运行,只是这个 jar
包在运行过程中连接和我们自己程序相同的 Mysql
数据库即可。这样就可以解决这个问题,如下图
那现在问题是如何打包呢?
打包
由于我们在构建 SpringBoot
工程时已经在 pom.xml
中配置了如下插件
<plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin>
所以我们只需要使用 Maven
的 package
指令打包就会在 target
目录下生成对应的 Jar
包。
注意:该插件必须配置,不然打好的
jar
包也是有问题的。
启动
进入 jar
包所在位置,在 命令提示符
中输入如下命令
java -jar 包名.jar
执行上述命令就可以看到 SpringBoot
运行的日志信息
以上是SpringBoot官網建置、快速啟動的問題怎麼解決的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

Jasypt介紹Jasypt是一個java庫,它允許開發員以最少的努力為他/她的專案添加基本的加密功能,並且不需要對加密工作原理有深入的了解用於單向和雙向加密的高安全性、基於標準的加密技術。加密密碼,文本,數字,二進位檔案...適合整合到基於Spring的應用程式中,開放API,用於任何JCE提供者...添加如下依賴:com.github.ulisesbocchiojasypt-spring-boot-starter2. 1.1Jasypt好處保護我們的系統安全,即使程式碼洩露,也可以保證資料來源的

使用場景1、下單成功,30分鐘未支付。支付超時,自動取消訂單2、訂單簽收,簽收後7天未進行評估。訂單超時未評價,系統預設好評3、下單成功,商家5分鐘未接單,訂單取消4、配送超時,推播簡訊提醒…對於延時比較長的場景、即時性不高的場景,我們可以採用任務調度的方式定時輪詢處理。如:xxl-job今天我們採

一、Redis實現分散式鎖原理為什麼需要分散式鎖在聊分散式鎖之前,有必要先解釋一下,為什麼需要分散式鎖。與分散式鎖相對就的是單機鎖,我們在寫多執行緒程式時,避免同時操作一個共享變數產生資料問題,通常會使用一把鎖來互斥以保證共享變數的正確性,其使用範圍是在同一個進程中。如果換做是多個進程,需要同時操作一個共享資源,如何互斥?現在的業務應用通常是微服務架構,這也意味著一個應用會部署多個進程,多個進程如果需要修改MySQL中的同一行記錄,為了避免操作亂序導致髒數據,此時就需要引入分佈式鎖了。想要實現分

springboot讀取文件,打成jar包後訪問不到最新開發出現一種情況,springboot打成jar包後讀取不到文件,原因是打包之後,文件的虛擬路徑是無效的,只能通過流去讀取。文件在resources下publicvoidtest(){Listnames=newArrayList();InputStreamReaderread=null;try{ClassPathResourceresource=newClassPathResource("name.txt");Input

在Springboot+Mybatis-plus不使用SQL語句進行多表添加操作我所遇到的問題準備工作在測試環境下模擬思維分解一下:創建出一個帶有參數的BrandDTO對像模擬對後台傳遞參數我所遇到的問題我們都知道,在我們使用Mybatis-plus中進行多表操作是極其困難的,如果你不使用Mybatis-plus-join這一類的工具,你只能去配置對應的Mapper.xml文件,配置又臭又長的ResultMap,然後再寫對應的sql語句,這種方法雖然看上去很麻煩,但具有很高的靈活性,可以讓我們

1.自訂RedisTemplate1.1、RedisAPI預設序列化機制基於API的Redis快取實作是使用RedisTemplate範本進行資料快取操作的,這裡開啟RedisTemplate類,查看該類別的源碼資訊publicclassRedisTemplateextendsRedisAccessorimplementsRedisOperations,BeanClassLoaderAware{//聲明了value的各種序列化方式,初始值為空@NullableprivateRedisSe

SpringBoot和SpringMVC都是Java開發中常用的框架,但它們之間有一些明顯的差異。本文將探究這兩個框架的特點和用途,並對它們的差異進行比較。首先,我們來了解一下SpringBoot。 SpringBoot是由Pivotal團隊開發的,它旨在簡化基於Spring框架的應用程式的建立和部署。它提供了一種快速、輕量級的方式來建立獨立的、可執行

本文來寫個詳細的例子來說下dubbo+nacos+Spring Boot開發實戰。本文不會講述太多的理論的知識,會寫一個最簡單的例子來說明dubbo如何與nacos整合,快速建構開發環境。
