《01.Spring Boot連載: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入門介紹》