spring-boot是什么?
spring-boot是spring的一個子項目,spring-boot旨在能夠快速構(gòu)建基于spring的獨立的,產(chǎn)品級別的應用,擁有“一鍵啟動”,“配置簡約”,“內(nèi)置服務器”,“應用健康檢查”等一系列高逼格的功能。
spring-boot hello world
注:這里的hello world并沒有一板一眼的將官網(wǎng)的案例照搬,而是希望以一種最快速的方式構(gòu)建一個由spring boot構(gòu)建的應用,讓包括我在內(nèi)的對spring boot陌生的同學對它有一個最直觀的感受。
java

IDE

Maven(Eclipse內(nèi)置)

你也可以自行配置一個外部Maven,隨意
接下來我們新建一個Maven項目,我們選取webapp模板


搭建完畢之后,我們需要修改pom.xml文件,將spring boot相關的依賴添加進去
首先,添加parent節(jié)點到pom.xml
1 <parent>
2 <groupId>org.springframework.boot</groupId>
3 <artifactId>spring-boot-starter-parent</artifactId>
4 <version>1.3.5.RELEASE</version>
5 </parent>
spring boot提供了一系列的“
starter POMs”,可以輕松的添加相關的jar到項目的類路徑下,而
spring-boot-starter-parent節(jié)點則是一個特殊的“starter”,它提供了很多maven默認的依賴,并且提供了依賴管理,使得我們可以忽略依賴的版本號,也就是說我們無需再聲明
version標識。
*starter POMs:可以理解一系列的依賴,每一個依賴都提供了該功能所需的jar包我們添加
spring-boot-starter-web到pom.xml
1 <parent>
2 <groupId>org.springframework.boot</groupId>
3 <artifactId>spring-boot-starter-parent</artifactId>
4 <version>1.3.5.RELEASE</version>
5 </parent>
6
7 <dependencies>
8 <dependency>
9 <groupId>org.springframework.boot</groupId>
10 <artifactId>spring-boot-starter-web</artifactId>
11 </dependency>
12 </dependencies>
之后我們看到構(gòu)建web應用所需的jar包已經(jīng)添加到Maven依賴中了

更多關于“starter”的信息可以查看
http://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/#using-boot-starter接下來可以寫代碼了,添加一個“控制器”到src/main/java/demo下
1 package demo;
2
3 import org.springframework.boot.*;
4 import org.springframework.boot.autoconfigure.*;
5 import org.springframework.web.bind.annotation.*;
6
7 @RestController
8 @EnableAutoConfiguration
9 public class Example {
10
11 @RequestMapping("/")
12 String home() {
13 return "Hello World!";
14 }
15
16 public static void main(String[] args) throws Exception {
17 SpringApplication.run(Example.class, args);
18 }
19
20 }
之后我們“run as Java application”或者通過Maven goals“spring-boot:run”,就可以發(fā)現(xiàn),我們的服務已經(jīng)在本地的8080端口啟動了。

是不是太快了...我也這么覺得,真的是“傻瓜式”的部署
@RestController這個注解是“stereotype annotation”(不知道怎么翻譯合適,或許可以理解為“套版注解”),在閱讀代碼的時候給讀者提供必要的提示,對于spring來說,他扮演了一個特別的角色,在案例中他是一個web的控制器,所以spring會用他來處理對應的請求。
@RequestMapping
用過spring-MVC的同學都知道,這個注解用來對應路由
@EnableAutoConfiguration
這個注解就比較牛皮了,也是目前為止個人感覺spring boot強大的地方之一。這個注解告知spring,去通過你添加的依賴,“猜測”你想要怎么去配置spring,比如我們添加了start POM
spring-boot-starter-web,那么spring會認為我們需要部署一個web應用,所以spring boot幫助我們啟動tomcat服務,配置springMVC等操作。官方文檔同時提到,@EnableAutoConfiguration注解在設計時就與start POMs協(xié)作良好,但是二者并不絕對相關,就算沒有start POM,spring boot依然會盡最大努力去自動配置(笑)
截止目前,排除細節(jié)的情況下,已經(jīng)通過最簡單粗暴的方式構(gòu)造了一個spring boot的應用,希望在認知上能給大家一點幫助,但是還遠遠不夠,后續(xù)還要添加更多與web應用相關的內(nèi)容。