創(chuàng)建SpringBoot工程
可以直接采用https://start.spring.io/ 生成工程,也可以按照官方教程進行工程創(chuàng)建 http://projects.spring.io/spring-boot/
1、引入需要的pom
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.3.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
2舵盈、編寫一個controller
package hello;
import org.springframework.boot.*;
import org.springframework.boot.autoconfigure.*;
import org.springframework.stereotype.*;
import org.springframework.web.bind.annotation.*;
@Controller
@EnableAutoConfiguration
public class SampleController {
@RequestMapping("/")
@ResponseBody
String home() {
return "Hello World!";
}
public static void main(String[] args) throws Exception {
SpringApplication.run(SampleController.class, args);
}
}
3.運行main方法论矾,啟動web工程剃允,訪問http://localhost:8080/
整個web工程搭建完成沛简,也就是所謂的光速創(chuàng)建
其中涉及到的幾個概念如下:
應用入口類
main是標準的Java應用main方法,主要作用是作為項目啟動的入口斥废。
Application
起步依賴 spring-boot-starter-xx
Spring Boot提供了很多”開箱即用“的依賴模塊椒楣,都是以spring-boot-starter-xx作為命名的。舉個例子來說明一下這個起步依賴的好處营袜,比如組裝臺式機和品牌機撒顿,自己組裝的話需要自己去選擇不同的零件丑罪,最后還要組裝起來荚板,期間有可能會遇到零件不匹配的問題。耗時又消力吩屹,而品牌機就好一點跪另,買來就能直接用的,后續(xù)想換零件也是可以的煤搜。相比較之下免绿,后者帶來的效果更好點(這里就不討論價格問題哈),起步依賴就像這里的品牌機擦盾,自動給你封裝好了你想要實現(xiàn)的功能的依賴嘲驾。就比如我們之前要實現(xiàn)web功能,引入了spring-boot-starter-web這個起步依賴迹卢。
依賴很多辽故,所以Spring Boot通過提供眾多起步依賴降低項目依賴的復雜度。起步依賴本質(zhì)上是一個Maven項目對象模型(Project Object Model腐碱,POM)誊垢,定義了對其他庫的傳遞依賴,這些東西加在一起即支持某項功能症见。很多起步依賴的命名都暗示了它們提供的某種或者某類功能喂走。
實際上這些模塊并不包含代碼,主要是作為模塊對各個依賴包進行封裝谋作,降低依賴配置時的復雜度芋肠。
SpringBoot里的常用注解
對于新手非常容易被里面大量的注解搞暈掉,在這里進行梳理:
@ComponentScan
@ComponentScan這個注解在Spring中很重要遵蚜,它對應XML配置中的元素帖池,@ComponentScan的功能其實就是自動掃描并加載符合條件的組件(比如@Component和@Repository等)或者bean定義秒咐,最終將這些bean定義加載到IoC容器中。
我們可以通過basePackages等屬性來細粒度的定制@ComponentScan自動掃描的范圍,如果不指定括尸,則默認Spring框架實現(xiàn)會從聲明@ComponentScan所在類的package進行掃描侥锦。
注:所以SpringBoot的啟動類最好是放在root package下,因為默認不指定basePackages雷滋。
SpringBoot精要
自動配置:針對很多Spring應用程序常見的應用功能,Spring Boot能自動提供相關配置文兢。
Spring Boot會為這些常見配置場景進行自動配置晤斩。如果Spring Boot在應用程序的Classpath里發(fā)現(xiàn)H2數(shù)據(jù)庫的庫,那么它就自動配置一個嵌入式H2數(shù)據(jù)庫姆坚。如果在Classpath里發(fā)現(xiàn)JdbcTemplate澳泵,那么它還會為你配置一個JdbcTemplate的Bean。你無需操心那些Bean的配置兼呵,Spring Boot會做好準備兔辅,隨時都能將其注入到你的Bean里。
Spring Boot的自動配置遠不止嵌入式數(shù)據(jù)庫和JdbcTemplate击喂,它有大把的辦法幫你減輕配置負擔维苔,這些自動配置涉及Java持久化API(Java Persistence API,JPA)懂昂、Thymeleaf模板介时、安全和Spring MVC。
起步依賴:告訴Spring Boot需要什么功能凌彬,它就能引入需要的庫沸柔。
向項目中添加依賴是件富有挑戰(zhàn)的事。你需要什么庫铲敛?它的Group和Artifact是什么褐澎?你需要
哪個版本?哪個版本不會和項目中的其他依賴發(fā)生沖突原探?
Spring Boot通過起步依賴為項目的依賴管理提供幫助乱凿。起步依賴其實就是特殊的Maven依
賴和Gradle依賴,利用了傳遞依賴解析咽弦,把常用庫聚合在一起徒蟆,組成了幾個為特定功能而定制
的依賴。
命令行界面:這是Spring Boot的可選特性型型,借此你只需寫代碼就能完成完整的應用程序段审,無需傳統(tǒng)項目構建。
Actuator:讓你能夠深入運行中的Spring Boot應用程序闹蒜,一探究竟寺枉。
從本質(zhì)上來說抑淫,Spring Boot就是Spring,它做了那些沒有它你自己也會去做的SpringBean配置姥闪。謝天謝地始苇,幸好有Spring,你不用再寫這些樣板配置了筐喳,可以專注于應用程序的邏輯催式,這些才是應用程序獨一無二的東西。
參考:
使用 Spring Boot 快速構建 Spring 框架應用
https://www.ibm.com/developerworks/cn/java/j-lo-spring-boot/
Spring Boot干貨系列:(一)優(yōu)雅的入門篇
http://www.cnblogs.com/zheting/p/6707032.html
Spring Boot干貨系列:(二)配置文件解析http://www.cnblogs.com/zheting/p/6707036.html
Spring Boot干貨系列:(三)啟動原理解析
http://www.cnblogs.com/zheting/p/6707035.html
http://www.reibang.com/p/36529384b8c6