什么是Spring Boot
Spring Boot 是 Spring 開源組織下的一個子項目,也是 Spring 組件一站式解決方案,主要是為了簡化使用 Spring 框架的難度和簡化 Spring 框架復雜的XML配置。使用 Spring Boot 可以很容易創建一個獨立運行的、基于 Spring 的生產級應用程序,而且Spring Boot 對 Spring 平臺和第三方庫做了一些版本適配,這樣我們就可以盡快的上手。
使用 Spring Boot 來不僅可以創建基于 war 方式部署的傳統Java應用程序,也可以通過創建獨立的不依賴任何容器(如 tomcat 等)的應用,只需使用 “java -jar” 就能啟動。Spring Boot 還提供了一個運行 "spring scripts " 的命令行工具。
Spring Boot 的設計目標
為所有的 Spring 開發提供一個從根本上更快、更廣泛的入門體驗。
開箱即用,但當需求開始偏離默認值時,可以快速從中解放出來使用個性化的定制。
提供一系列大型應用項目中經常用到的公共的非功能特性(如嵌入式服務器、安全、度量、健康檢查和外部化配置)。
零代碼生成零XML配置。
第一個 Spring Boot 應用程序
我們在學習一門新的開發語言,或者開發框架的時候,一般都習慣寫個 Hello World 的項目。一方面可以驗證基礎環境的搭建是否正確,另一方面可以快速了解整個開發流程。現在我們創建一個 Hello world 的 Spring Boot 項目。我這里使用的IDE 是 Intellij IDEA 。
第一步
打開Intellij IDEA 使用 Spring Initializr 向導 新建 Hello World的項目
選擇 Spring Web, 然后點擊 Finish 等待項目創建完成。
第二步
項目已經創建完成。下面我們來看一下項目結構:
來看下 HelloApplication 入口類的內容, HelloApplication 里面定義了一個 main 函數,一個基本的 @SpringBootApplication 注解。后續的文章會詳細解釋一下 @SpringBootApplication 注解。現在我們只要知道有了 @SpringBootApplication 注解,所有的 Spring Boot 項目依賴都可以掃描加入進來。
@SpringBootApplication
public class HelloApplication {
public static void main(String[] args) {
SpringApplication.run(HelloApplication.class, args);
}
}
再看一下 pom.xml 文件有那些依賴項目, POM 文件主要依賴了spring-boot-starter-web 項目,該項目包含了 web 項目所需的相關依賴,包括內置了 tomcat 服務器。另外還有一個比較重要的插件 spring-boot-maven-plugin,方便我們可以對 Spring Boot 項目打包成一個獨立運行的 jar 包。
< ?xml version="1.0" encoding="UTF-8"? >
< project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd" >
< modelVersion >4.0.0< /modelVersion >
< parent >
< groupId >org.springframework.boot< /groupId >
< artifactId >spring-boot-starter-parent< /artifactId >
< version >2.5.0< /version >
< relativePath/ > < !-- lookup parent from repository -- >
< /parent >
< groupId >com.javanorth< /groupId >
< artifactId >hello< /artifactId >
< version >0.0.1-SNAPSHOT< /version >
< name >hello< /name >
< description >Demo project for Spring Boot< /description >
< properties >
< java.version >1.8< /java.version >
< /properties >
< dependencies >
< dependency >
< groupId >org.springframework.boot< /groupId >
< artifactId >spring-boot-starter-web< /artifactId >
< /dependency >
< dependency >
< groupId >org.springframework.boot< /groupId >
< artifactId >spring-boot-starter-test< /artifactId >
< scope >test< /scope >
< /dependency >
< /dependencies >
< build >
< plugins >
< plugin >
< groupId >org.springframework.boot< /groupId >
< artifactId >spring-boot-maven-plugin< /artifactId >
< /plugin >
< /plugins >
< /build >
< /project >
第三步
修改 HelloApplication 主類,添加一個/hello 的請求
@RestController
@SpringBootApplication
public class HelloApplication {
public static void main(String[] args) {
SpringApplication.run(HelloApplication.class, args);
}
@GetMapping("/hello")
public String hello() {
return "Hello World";
}
}
第四步
在主類上,右鍵菜單欄里選擇 Run “HelloApplication” 命令,啟動項目。如下圖所示,2秒鐘就能啟動完成。從輸出日志可以看出,項目啟動了內置的 tomcat 服務器,分配了8080 作為本次 web 服務器的請求端口。
好了,我們現在訪問一下 /hello 請求, 如下圖所示,輸出了 Hello World。
是不是很簡單,我們很快就上手完成了第一個 Hello World 應用。
第五步
我們再來看下,如何打包一個 Spring Boot 項目呢?前文我們已經提到了 spring-boot-maven-plugin 插件,所以我們可以使用mvn package 來對其進行打包
$ mvn package
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------< com.javanorth:hello >-------------------------
[INFO] Building hello 0.0.1-SNAPSHOT
[INFO] --------------------------------[ jar ]---------------------------------
[INFO] ...
[INFO] --- maven-jar-plugin:3.2.0:jar (default-jar) @ hello ---
[INFO] Building jar: /Users/wbf/Documents/javanorth/target/hello-0.0.1-SNAPSHOT.jar
[INFO]
[INFO] --- spring-boot-maven-plugin:2.5.0:repackage (repackage) @ hello ---
[INFO] Replacing main artifact with repackaged archive
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 2.065 s
[INFO] Finished at: 2021-05-27T16:33:17+08:00
[INFO] ------------------------------------------------------------------------
打包完成,查看 target 目錄,我們能看到 hello-0.0.1-SNAPSHOT.jar 文件。
從上圖可以看到有個名字相類似的文件,hello-0.0.1-SNAPSHOT.jar.original 文件是 Spring Boot repackage 之前的文件,也就是說這個文件其實就是 maven 創建的原始jar文件,不包含其他依賴的jar包。
如果我們想看一下 hello-0.0.1-SNAPSHOT.jar 里面包含那些內容,有沒有什么快速的辦法呢,我這里給大家提供一個命令行的方法,使用 “jar tvf ” 就行。
jar tvf hello-0.0.1-SNAPSHOT.jar
小結
從上面的示例可以看出開始一個新的 Spring Boot 項目非常簡單,Spring Boot 提供了專門的創建向導項目,簡化了大量的 Spring 項目的創建難度。全程下來不到5分鐘,我們就完成了項目的創建和 hello world 的輸出演示。
-
JAVA
+關注
關注
20文章
2983瀏覽量
106491 -
開源
+關注
關注
3文章
3533瀏覽量
43286 -
應用程序
+關注
關注
38文章
3316瀏覽量
58531 -
SpringBoot
+關注
關注
0文章
175瀏覽量
274
發布評論請先 登錄
相關推薦
Spring Boot如何實現異步任務
Spring Boot Starter需要些什么

Spring Boot從零入門1 詳述
「Spring認證」什么是Spring GraphQL?

Spring Boot特有的實踐
強大的Spring Boot 3.0要來了
怎樣使用Kiuwan保護Spring Boot應用程序呢?
Spring Boot Web相關的基礎知識
Spring Boot如何優雅實現數據加密存儲、模糊匹配和脫敏

Spring Boot Actuator快速入門
Spring Boot啟動 Eureka流程

Spring Boot的啟動原理

評論