1. 程式人生 > >SpringBoot入門(一)——開箱即用

SpringBoot入門(一)——開箱即用

工程 新建 入門 專註 原則 無需 編寫 部署 sel

本文來自網易雲社區

Spring Boot是什麽

從根本上來講Spring Boot就是一些庫的集合,是一個基於“約定優於配置”的原則,快速搭建應用的框架。本質上依然Spring,在這之上幫我們省去了很多樣板化的配置,使得我們能夠更專註於應用程序功能的開發。

Spring Boot精要

SpringBoot將很多魔法帶入了Spring應用程序的開發之中,其中最重要的是以下四個核心

  • 自動配置:針對常見的應用功能,SpringBoot自動提供相關的配置,減少用於樣板化配置的時間

  • 起步依賴:指定基於功能的依賴,用更大粒度的依賴來降低依賴的復雜度

  • 命令行界面:這是SpringBoot的可選特性,借此你只需要寫代碼就能完成完整的應用程序,無需傳統項目構建

  • Actuator:讓你能夠深入運行中的SpringBoot應用程序一探究竟

從Spring開始

為了體現SpringBoot的優勢,我們先來看看如果使用Spring開發一個簡單的Hello World Web應用程序,我們需要做的事情:

  • 一個項目結構,其中有一個包含必要依賴的Maven或者Gradle構件文件,最起碼要有Spring MVC和Servlet API這些依賴

  • 一個web.xml文件(或者一個WebApplicationInitializer實現),其中聲明了Spring的DispatcherServlet

  • 一個啟用Spring MVC的Spring配置

  • 一個控制器類,以"Hello World"響應HTTP請求

  • 一個用於部署應用程序的Web應用服務器,比如Tomcat

可以看到上面一系列的事中只有編寫控制器是和HelloWorld功能相關的,雖然現代的IDE也能幫我們簡化掉一些步驟,但是Spring相關的配置就算從別的工程拷貝也還是逃不了這一步。

接下來讓我們來看下用Spring Boot是什麽樣的情況。

Spring Boot開箱即用

你上次在超市或大型零售商店自己推開門是什麽時候?大多數大型商店都安裝了帶感應功能的自動門,雖然所有門都能讓你進入建築物內,但自動門不用你動手推拉。 與之類似,很多公共場所的衛生間裏都裝有自動感應水龍頭和自動感應紙巾機。雖然沒有超市自動門這麽普及,但這些設施同樣對你沒有太多要求,可以很方便地出水和紙巾。 我敢打賭你也能想出無數例子,證明設備讓現代生活更加自動化,而不是增加障礙。

下面通過一個例子來展示Spring Boot是如何開箱即用的。 依然是Hello World Web項目,我們來看下如何用InteliJ IDEA來創建。 點擊IDEA的File-New-Project...,選擇左邊選項卡中的Spring Initializr,可以看到如下界面。

技術分享圖片

使用默認的https://start.spring.io,這將會連接網絡,查詢Spring Boot當前可用版本和組件列表。(當前時間用的是Spring Boot的2.0.0.RELEASE)

Next-輸入項目信息-Next,來到選擇起步依賴界面,如下:

技術分享圖片

對於一個簡單的Hello World Web項目來說,這裏只用勾選Web即可(我在這裏另外勾選了Thymeleaf,在窗口的最右邊可以看到)。 在這個界面可以看到Spring Boot為我們提供的大量的起步依賴。我們所勾選的web會為我們註入Web相關的所有依賴,省去我們自己配置依賴的時間。

再點擊一次Next工程就新建完成了,等待下載相關的Maven依賴(第一次所花費的時間可能比較久)和IDEA創建索引。

創建完成後,項目結構如下圖所示:

技術分享圖片

是一個常見的Maven項目結構,比較特別的是Spring Boot為我們自動生成了2個文件,application.properties和BlogDemoApplication.java。

application.properties是Spirng Boot默認的配置文件,當期是個空文件,現在不用理會後面會細講。

BlogDemoApplication.java是Spring Boot自動生成的啟動類。有了這個類,現在這個項目已經是一個可以啟動的Web項目了,雖然還沒有任何控制器,我們依然可以試著訪問默認端口8080。 如果IDEA沒有自動創建啟動配置,可以自行到Run/Debug Configurations裏添加。添加時選擇Spring Boot,在右邊選框的"Main class"中選擇自動生成的啟動類,如下:

技術分享圖片

點擊運行後,訪問8080端口將得到Spring Boot默認的錯誤頁:

技術分享圖片

接著就可以開發我們的功能了——Hello World。

@Controller@RequestMapping("/demo")public class HelloWorldController {    @RequestMapping("/hello")    @ResponseBody
    public String hello(){        return "hello";
    }
}

很簡單一個Controller,最後再次啟動項目,已經能愉快的hello了!

小結

回顧一下,去掉啰嗦的介紹,實際上的操作只有點點點、輸入項目名、再編寫一下Controller就完成了一個Hello World。仿佛回到了初學Java的年代,那時候還是Eclipse,也是點點點、輸入項目名、然後編寫一個main方法控制臺輸出一個hello。步驟相似,然而這次得到的已然是一個擁有眾多Spring特性的一個Web工程。

相關閱讀:SpringBoot入門(一)——開箱即用

SpringBoot入門(二)——起步依賴

SpringBoot入門(三)——入口類解析

SpringBoot入門(四)——自動配置

SpringBoot入門(五)——自定義配置

網易雲新用戶大禮包:https://www.163yun.com/gift

本文來自網易雲社區,經作者金港生授權發布。

SpringBoot入門(一)——開箱即用