SpringBoot簡介
回顧:什么是Spring
Spring是一個開源框架,2003 年興起的一個輕量級的Java 開發(fā)框架,作者:Rod Johnson 。
Spring是為了解決企業(yè)級應用開發(fā)的復雜性而創(chuàng)建的,簡化開發(fā)。
Spring是如何簡化Java開發(fā)的
為了降低Java開發(fā)的復雜性,Spring采用了以下4種關鍵策略:
1、基于POJO的輕量級和最小侵入性編程,所有東西都是bean;
2、通過IOC,依賴注入(DI)和面向接口實現(xiàn)松耦合;
3、基于切面(AOP)和慣例進行聲明式編程;
4、通過切面和模版減少樣式代碼,RedisTemplate,xxxTemplate;
什么是SpringBoot
學過javaweb的同學就知道,開發(fā)一個web應用,從最初開始接觸Servlet結合Tomcat, 跑出一個Hello Wolrld程序,是要經(jīng)歷特別多的步驟; 后來就用了框架Struts,再后來是SpringMVC,到了現(xiàn)在的SpringBoot,過一兩年又會有其他web框架出現(xiàn);你們有經(jīng)歷過框架不斷的演進,然后自己開發(fā)項目所有的技術也再不斷的變化、改造嗎?建議都可以去經(jīng)歷一遍;
言歸正傳,什么是SpringBoot呢,就是一個javaweb的開發(fā)框架,和SpringMVC類似,對比其他javaweb框架的好處,官方說是簡化開發(fā),約定大于配置, you can "just run",能迅速的開發(fā)web應用,幾行代碼開發(fā)一個http接口。
所有的技術框架的發(fā)展似乎都遵循了一條主線規(guī)律:從一個復雜應用場景 衍生 一種規(guī)范框架,人們只需要進行各種配置而不需要自己去實現(xiàn)它,這時候強大的配置功能成了優(yōu)點;發(fā)展到一定程度之后,人們根據(jù)實際生產(chǎn)應用情況,選取其中實用功能和設計精華,重構出一些輕量級的框架;之后為了提高開發(fā)效率,嫌棄原先的各類配置過于麻煩,于是開始提倡“約定大于配置”,進而衍生出一些一站式的解決方案。
是的這就是Java企業(yè)級應用->J2EE->spring->springboot的過程。
隨著 Spring 不斷的發(fā)展,涉及的領域越來越多,項目整合開發(fā)需要配合各種各樣的文件,慢慢變得不那么易用簡單,違背了最初的理念,甚至人稱配置地獄。Spring Boot 正是在這樣的一個背景下被抽象出來的開發(fā)框架,目的為了讓大家更容易的使用 Spring 、更容易的集成各種常用的中間件、開源軟件;
Spring Boot 基于 Spring 開發(fā),Spirng Boot 本身并不提供 Spring 框架的核心特性以及擴展功能,只是用于快速、敏捷地開發(fā)新一代基于 Spring 框架的應用程序。也就是說,它并不是用來替代 Spring 的解決方案,而是和 Spring 框架緊密結合用于提升 Spring 開發(fā)者體驗的工具。Spring Boot 以約定大于配置的核心思想,默認幫我們進行了很多設置,多數(shù) Spring Boot 應用只需要很少的 Spring 配置。同時它集成了大量常用的第三方庫配置(例如 Redis、MongoDB、Jpa、RabbitMQ、Quartz 等等),Spring Boot 應用中這些第三方庫幾乎可以零配置的開箱即用。
簡單來說就是SpringBoot其實不是什么新的框架,它默認配置了很多框架的使用方式,就像maven整合了所有的jar包,spring boot整合了所有的框架 。
Spring Boot 出生名門,從一開始就站在一個比較高的起點,又經(jīng)過這幾年的發(fā)展,生態(tài)足夠完善,Spring Boot 已經(jīng)當之無愧成為 Java 領域最熱門的技術。
Spring Boot的主要優(yōu)點:
- 為所有Spring開發(fā)者更快的入門
- 開箱即用,提供各種默認配置來簡化項目配置
- 內(nèi)嵌式容器簡化Web項目
- 沒有冗余代碼生成和XML配置的要求
HelloWorld
準備工作
我們將學習如何快速的創(chuàng)建一個Spring Boot應用,并且實現(xiàn)一個簡單的Http請求處理。通過這個例子對Spring Boot有一個初步的了解,并體驗其結構簡單、開發(fā)快速的特性。
我的環(huán)境準備:
- java version "1.8.0_181"
- Maven-3.6.1
- SpringBoot 2.x 最新版
開發(fā)工具:
- IDEA
創(chuàng)建基礎項目說明
Spring官方提供了非常方便的工具讓我們快速構建應用 , Spring Initializr: https://start.spring.io/
項目創(chuàng)建方式一:使用Spring Initializr 的 Web頁面創(chuàng)建項目
2、填寫項目信息
3、點擊”Generate Project“按鈕生成項目;下載此項目
4、解壓項目包,并用IDEA以Maven項目導入,一路下一步即可,直到項目導入完畢。
5、如果是第一次使用,可能速度會比較慢,包比較多、需要耐心等待一切就緒。
項目創(chuàng)建方式二:使用 IDEA 直接創(chuàng)建項目
1、創(chuàng)建一個新項目
2、選擇spring initalizr , 可以看到默認就是去官網(wǎng)的快速構建工具那里實現(xiàn)
3、填寫項目信息
4、選擇初始化的組件(初學勾選 Web 即可)
5、填寫項目路徑
6、等待項目構建成功
項目結構分析:
通過上面步驟完成了基礎項目的創(chuàng)建。就會自動生成以下文件。
1、程序的主啟動類
2、一個 application.properties 配置文件
3、一個 測試類
4、一個 pom.xml
pom.xml 分析
打開pom.xml,看看Spring Boot項目的依賴:
<!-- 父依賴 -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.5.RELEASE</version>
<relativePath/>
</parent>
<dependencies>
<!-- web場景啟動器 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- springboot單元測試 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<!-- 剔除依賴 -->
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
<build>
<plugins>
<!-- 打包插件 -->
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
編寫HTTP接口
1、在主程序的同級目錄下,新建一個controller包,==一定要在同級目錄下,否則識別不到==
2、在包中新建一個HelloController類
@RestController
public class HelloController {
@RequestMapping("/hello")
public String hello() {
return "Hello World";
}
}
3、編寫完畢后,從主程序啟動項目,瀏覽器發(fā)起請求,看頁面返回;控制臺輸出了 Tomcat 訪問的端口號!

簡單幾步,就完成了一個web接口的開發(fā),SpringBoot就是這么簡單。所以我們常用它來建立我們的微服務項目!
將項目打成jar包,點擊 maven的 package

如果遇到以上錯誤,可以配置打包時 跳過項目運行測試用例
<!--
在工作中,很多情況下我們打包是不想執(zhí)行測試用例的
可能是測試用例不完事,或是測試用例會影響數(shù)據(jù)庫數(shù)據(jù)
跳過測試用例執(zhí)
-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<!--跳過項目運行測試用例-->
<skipTests>true</skipTests>
</configuration>
</plugin>
如果打包成功,則會在target目錄下生成一個 jar 包

打成了jar包后,就可以在任何地方運行了!OK java -jar xxx.jar
彩蛋
如何更改啟動時顯示的字符拼成的字母,SpringBoot呢? 也就是 banner 圖案;
只需一步:到項目下的 resources 目錄下新建一個banner.txt 即可。
圖案可以到:https://www.bootschool.net/ascii 這個網(wǎng)站生成,然后拷貝到文件中即可!

SpringBoot這么簡單的東西背后一定有故事,我們之后去進行一波源碼分析!