1. 程式人生 > >《01.Spring Boot連載:Spring Boot入門介紹》

《01.Spring Boot連載:Spring Boot入門介紹》

spring boot maven

1 Spring Boot的概述

Spring Boot是開發者和Spring 本身框架的中間層,幫助開發者統籌管理應用的配置,提供基於實際開發中常見配置的默認處理(即習慣優於配置),簡化應用的開發,簡化應用的運維;總的來說,其目的Spring Boot就是為了對Java web 的開發進行“簡化”和加“快”速度,簡化開發過程中引入或啟動相關Spring 功能的配置。這樣帶來的好處就是降低開發人員對於框架的關註點,可以把更多的精力放在自己的業務代碼上。

同時隨著微服務概念的推廣和實踐,Spring Boot的精簡理念又使其成為Java微服務開發的不二之選,也可以說,Spring Boot其實就是為了微服務而生的Java web框架。現如今,Spring Boot已經在蓬勃發展的快速應用開發領域(rapid application development)成為領導者。

2 Spring Boot的核心功能

  • 可獨立運行的Spring項目:Spring Boot可以以jar包的形式獨立運行。

  • 內嵌的Servlet容器:Spring Boot可以選擇內嵌Tomcat、Jetty或者Undertow,無須以war包形式部署項目。

  • 簡化的Maven配置:Spring提供推薦的基礎 POM 文件來簡化Maven 配置。

  • 自動配置Spring:Spring Boot會根據項目依賴來自動配置Spring 框架,極大地減少項目要使用的配置。

  • 提供生產就緒型功能:提供可以直接在生產環境中使用的功能,如性能指標、應用信息和應用健康檢查。

  • 無代碼生成和xml配置:Spring Boot不生成代碼。完全不需要任何xml配置即可實現Spring的所有配置。

  • Spring Boot整合了諸多技術框架,通過配置即可自動關聯以及配置與其他框架整合。

  • 使用微信公眾號編輯器有一個十分頭疼的問題——粘貼出來的代碼,格式錯亂,而且特別醜。這塊編輯器能夠解決這個問題。

3.入門案例

(1)在Eclipse開發工具中整合Maven(讀者亦可聯系作者獲取Maven框架使用的教程) (2)在Eclipse中新建一個Mavan的web項目,取名為hellotest

技術分享圖片

(3)在pom.xml文件中加入如下配置:

<!-- 加入本配置意味著Spring Boot會自動選擇合適的--><parent>   <groupId>org.springframework.boot</groupId>   <artifactId>spring-boot-starter-parent</artifactId>   <version>1.5.6.RELEASE</version></parent>

構建基於Spring Boot的應用首先必須要將元素設置為spring boot的spring-boot-starter-parent,spring-boot-starter-parent是Spring Boot的核心啟動器,包含了自動配置、日誌和YAML等大量默認的配置,大大簡化了我們的開發。元素建議使用最新的 RELEASE 版本,之後的spring boot模塊(如spring-boot-starter-web模塊)都會自動選擇最合適的版本進行添加,後續的配置基本無需程序員自己制定版本號了。 (4)在pom.xml文件中加入如下配置:

<!-- 加入本配置意味著Spring Boot會自動選擇合適的--><dependency>    <groupId>org.springframework.boot</groupId>    <artifactId>spring-boot-starter-web</artifactId></dependency>

Spring Boot中包含了很多的starter模塊,簡單的說,每一個starter模塊就是一系列的依賴包組合。例如starter-web模塊,就是包含了Spring Boot預定義的一些Web開發的常用依賴包,支持全棧式Web開發,包括Tomcat和spring-webmvc,同時Spring Boot會進行自動配置集成SpringMVC。由於指定了spring-boot-starter-parent,所以此處的web starter模塊不需要指定版本,Spring Boot會自動選擇最合適的版本進行添加。 修改完成之後的pom.xml文件內容如下:

<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 http://maven.apache.org/xsd/maven-4.0.0.xsd">  <modelVersion>4.0.0</modelVersion>  <groupId>org.fkit.springboot</groupId>  <artifactId>hellotest</artifactId>  <version>0.0.1-SNAPSHOT</version>  <packaging>jar</packaging>  <name>hellotest</name>  <url>http://maven.apache.org</url>   <parent>        <groupId>org.springframework.boot</groupId>        <artifactId>spring-boot-starter-parent</artifactId>        <version>1.5.6.RELEASE</version>   </parent>    <properties>        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>    </properties>    <dependencies>        <dependency>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-starter-web</artifactId>    </dependency>    <dependency>          <groupId>junit</groupId>          <artifactId>junit</artifactId>          <version>3.8.1</version>          <scope>test</scope>      </dependency>    </dependencies></project>

pom.xml文件修改保存後,Maven會自動下載所需要的所有jar文件,速度取決於讀者網絡。 (5)編寫測試代碼 a.寫一個簡單的Java類HelloController。

// 程序清單:codes/01/hellotest/org/fkit /hellotest/HelloController.javaimport org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;// RestController相當於SpringMVC中的 @Controller + @ResponseBody@RestControllerpublic class HelloController {    // 映射"/hello"請求    @RequestMapping("/hello")    public String hello(){        return " Hello Spring Boot!";    }}HelloController 類上使用的@RestController註解是一個組合註解,相當於SpringMVC中的@Controller+@ResponseBody合在一起的作用。表明這個請求返回字符串“hello”。

b.修改Maven默認的App類。

// 程序清單:codes/01/hellotest/org/fkit/hellotest/App.javaimport org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;// @SpringBootApplication指定這是一個 spring boot的應用程序.@SpringBootApplicationpublic class App {    public static void main( String[] args )    {        // SpringApplication 用於從main方法啟動Spring應用的類。        SpringApplication.run(App.class, args);    }}

App類使用的@ SpringBootApplication註解指定這是一個 spring boot的應用程序,該註解也是一個組合註解,相當於@Configuration + @EnableAutoConfiguration + @ComponentScan,具體在後續《Spring Boot的核心》重點講解。SpringApplication類 用於從main方法啟動Spring應用的類。此處直接調用靜態的run方法。 c.啟動Spring Boot項目,右鍵執行App.java類運行main方法。 d.測試應用 Spring Boot項目啟動後,默認訪問地址為:http://localhost:8080/,按照之前的web項目習慣,讀者可能會問,怎麽沒有項目路徑?這就是Spring Boot的默認設置了,將項目路徑直接設為根路徑。在瀏覽器輸入URL來測試應用。

http://localhost:8080/hello

結果如下:

技術分享圖片

如有疑問請與讀者聯系,Spring Boot目前十分火熱,後續將繼續更新。

技術分享圖片

《01.Spring Boot連載:Spring Boot入門介紹》