Spring Boot
Spring Boot主要目的是簡化了Spring的引用開發,遵循約定大於配置的思想,不需要我們再去配置就能執行Spring應用,Spring Boot管理Spring容器,第三方外掛,並且提供了很多預設系統級的服務。大部分Spring應用,無論是簡單的WEB系統還是構建複雜的系統,都自需要少量配置和程式碼就能完成,去繁從簡,這樣的結果就能讓我們很快的建立一個獨立的,產品級別的應用。
背景:J2EE笨重的開發、繁多的配置、低下的開發效率、複雜的部署流程、第三方技術整合難度大。
解決:
- “Spring全家桶”時代
- Spring Boot -> J2EE一站式解決方案
- Spring Cloud -> 分散式整體解決方案
Spring Boot 通過 Starter 來提供微服務,Spring Boot 已經提供了一系列 Starter,你也可以開發自己的starter,比如需要開發一個Web應用,只需要在pom.xml中進行一下宣告即可。
<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-web -->
<!-- 這是引用一個WEB應用,很簡單吧 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>2.0.3.RELEASE</version>
</dependency>
複製程式碼
Spring Boot 相對與Spring框架的優點有哪些?
- 實現約定大於配置,是一個低配置的應用系統框架。不像Spring那樣“地獄般的配置體驗”,想一下你們配置SSM整合的過程(難受啊!),Spring Boot 不需要配置或者極少配置,就能使用Spring大量的功能。
- 大量的自動配置,簡化開發,也可修改預設值
- 無需配置XML,無程式碼生成,開箱即用
- 提供了內建的Tomcat或者Jetty容器,應用無需打成WAR包。
- starters 自動依賴與版本控制,通過依賴的jar包管理,自動裝配技術,容易支援與其他技術體系,工具整合。
- 支援熱載入(無需重新伺服器),開發體驗好。
- 支援Spring Boot 系統監控,方便了解系統執行狀況。
- 與雲端計算的天然整合
Hello,Spring Boot
體驗完成一個簡單的WEB應用"Hello,Spring Boot!!",示例中使用的環境為
- JDK1.8
- Maven 3.X
- Intellij IDE 2018
- Spring Boot 2.0.3.RELEASE
複製程式碼
Maven的設定
<profile>
<id>jdk-1.8</id>
<activation>
<activeByDefault>true</activeByDefault>
<jdk>1.8</jdk>
</activation>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
</properties>
</profile>
複製程式碼
一個功能:瀏覽器傳送hello請求,伺服器接受請求並處理,響應Hello World字串;
(1) 建立專案,選擇Spring starter Project
(2)點選Next,填寫跟專案相關的各種資訊(我們要做WEB專案)
(3) 選擇需要的Dependency,然後Next
在這裡的版本,我沒有使用最新版,因為在使用的阿里雲中心中無法下載,所以我使用的2.0.4的版本
(4) 最後"Finish",就開始下載jar包了,這個過程需要的時間比較長
(5) 等待完畢之後的效果圖如下,我調整了一下核心Application啟動的位置
要將Application類放在最外側,即包含所有子包 原因:spring-boot會自動載入啟動類所在包下及其子包下的所有元件.
(6) 新建controller包,完成相關的測試
package com.hanpang.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.servlet.ModelAndView;
@Controller
public class Demo01Controller {
@GetMapping("/test01")
public ModelAndView test01() {
System.out.println("Hello World");
return null;
}
}
複製程式碼
(7) 右鍵執行Demo01Application啟動類
(8) 在位址列中訪問,沒有釋出路徑
其實整個過程你感覺很簡單,中間過程也是遇到了各種錯誤,希望大家增加動手能力和解決問題的能力
備註:Spring Boot預設啟動的是8080埠,WEB上下文是“/”,可以通過application.properties來進行重新配置