Springboot入門

創建SpringBoot工程

可以直接采用https://start.spring.io/ 生成工程,也可以按照官方教程進行工程創建 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工程搭建完成,也就是所謂的光速創建

其中涉及到的幾個概念如下:

應用入口類

main是標準的Java應用main方法,主要作用是作為項目啟動的入口。
Application

起步依賴 spring-boot-starter-xx

Spring Boot提供了很多”開箱即用“的依賴模塊,都是以spring-boot-starter-xx作為命名的。舉個例子來說明一下這個起步依賴的好處,比如組裝臺式機和品牌機,自己組裝的話需要自己去選擇不同的零件,最后還要組裝起來,期間有可能會遇到零件不匹配的問題。耗時又消力,而品牌機就好一點,買來就能直接用的,后續想換零件也是可以的。相比較之下,后者帶來的效果更好點(這里就不討論價格問題哈),起步依賴就像這里的品牌機,自動給你封裝好了你想要實現的功能的依賴。就比如我們之前要實現web功能,引入了spring-boot-starter-web這個起步依賴。

image.png

依賴很多,所以Spring Boot通過提供眾多起步依賴降低項目依賴的復雜度。起步依賴本質上是一個Maven項目對象模型(Project Object Model,POM),定義了對其他庫的傳遞依賴,這些東西加在一起即支持某項功能。很多起步依賴的命名都暗示了它們提供的某種或者某類功能。

實際上這些模塊并不包含代碼,主要是作為模塊對各個依賴包進行封裝,降低依賴配置時的復雜度。

SpringBoot里的常用注解

對于新手非常容易被里面大量的注解搞暈掉,在這里進行梳理:
@ComponentScan
@ComponentScan這個注解在Spring中很重要,它對應XML配置中的元素,@ComponentScan的功能其實就是自動掃描并加載符合條件的組件(比如@Component和@Repository等)或者bean定義,最終將這些bean定義加載到IoC容器中。
我們可以通過basePackages等屬性來細粒度的定制@ComponentScan自動掃描的范圍,如果不指定,則默認Spring框架實現會從聲明@ComponentScan所在類的package進行掃描。

注:所以SpringBoot的啟動類最好是放在root package下,因為默認不指定basePackages。

SpringBoot精要

自動配置:針對很多Spring應用程序常見的應用功能,Spring Boot能自動提供相關配置。

Spring Boot會為這些常見配置場景進行自動配置。如果Spring Boot在應用程序的Classpath里發現H2數據庫的庫,那么它就自動配置一個嵌入式H2數據庫。如果在Classpath里發現JdbcTemplate,那么它還會為你配置一個JdbcTemplate的Bean。你無需操心那些Bean的配置,Spring Boot會做好準備,隨時都能將其注入到你的Bean里。
Spring Boot的自動配置遠不止嵌入式數據庫和JdbcTemplate,它有大把的辦法幫你減輕配置負擔,這些自動配置涉及Java持久化API(Java Persistence API,JPA)、Thymeleaf模板、安全和Spring MVC。

起步依賴:告訴Spring Boot需要什么功能,它就能引入需要的庫。

向項目中添加依賴是件富有挑戰的事。你需要什么庫?它的Group和Artifact是什么?你需要
哪個版本?哪個版本不會和項目中的其他依賴發生沖突?
Spring Boot通過起步依賴為項目的依賴管理提供幫助。起步依賴其實就是特殊的Maven依
賴和Gradle依賴,利用了傳遞依賴解析,把常用庫聚合在一起,組成了幾個為特定功能而定制
的依賴。

命令行界面:這是Spring Boot的可選特性,借此你只需寫代碼就能完成完整的應用程序,無需傳統項目構建。
Actuator:讓你能夠深入運行中的Spring Boot應用程序,一探究竟。

從本質上來說,Spring Boot就是Spring,它做了那些沒有它你自己也會去做的SpringBean配置。謝天謝地,幸好有Spring,你不用再寫這些樣板配置了,可以專注于應用程序的邏輯,這些才是應用程序獨一無二的東西。

參考:
使用 Spring Boot 快速構建 Spring 框架應用
https://www.ibm.com/developerworks/cn/java/j-lo-spring-boot/
Spring Boot干貨系列:(一)優雅的入門篇
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.lxweimin.com/p/36529384b8c6

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容