Hello,Spring Boot

胖先森發表於2018-09-04

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

Hello,Spring Boot

(2)點選Next,填寫跟專案相關的各種資訊(我們要做WEB專案)

Hello,Spring Boot

(3) 選擇需要的Dependency,然後Next

在這裡的版本,我沒有使用最新版,因為在使用的阿里雲中心中無法下載,所以我使用的2.0.4的版本

Hello,Spring Boot

Hello,Spring Boot

(4) 最後"Finish",就開始下載jar包了,這個過程需要的時間比較長

Hello,Spring Boot

(5) 等待完畢之後的效果圖如下,我調整了一下核心Application啟動的位置

要將Application類放在最外側,即包含所有子包 原因:spring-boot會自動載入啟動類所在包下及其子包下的所有元件.

Hello,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啟動類

Hello,Spring Boot

(8) 在位址列中訪問,沒有釋出路徑

Hello,Spring Boot

Hello,Spring Boot

其實整個過程你感覺很簡單,中間過程也是遇到了各種錯誤,希望大家增加動手能力和解決問題的能力

備註:Spring Boot預設啟動的是8080埠,WEB上下文是“/”,可以通過application.properties來進行重新配置

相關文章