Spring Boot

Posted by Bruce Tsai
06/21/2016

Spring 官方網站本身使用 Spring Framework 開發,隨著功能以及業務邏輯的日益複雜,程式伴隨著大量的 XML 配置文件以及復雜的 Bean 依賴關係。隨著 Spring 3.0的發布,Spring IO 團隊逐漸開始擺脫 XML 配置文件,並且在開發過程中大量使用「約定優先配置」(convention over configuration)的思想來擺脫 Spring Framework 中各類繁複紛雜的配置。

Spring Boot 正是在這樣的一個背景下被抽離出來的開發框架,它本身並不提供 Spring Framework 的核心特性以及擴展功能,只是用於快速、敏捷地開發新一代基於 Spring Framework 的應用程式。也就是說,它並不是用來替代 Spring 的解決方案,而是和 Spring Framework 緊密結合用於提升 Spring 開發者體驗的工具。同時它集成了大量常用的第三方庫配置(例如 Jackson、JDBC、Mongo、Redis、Mail等等),Spring Boot 應用中這些第三方庫幾乎可以零配置的開箱即用(out-of-the-box),大部分的 Spring Boot 應用都只需要非常少量的配置代碼,開發者能夠更加專注於業務邏輯。

範例

以 Spring Boot start-web 為例,僅需引用 spring-boot-starter-web 即可開始 web 應用程式的開發,而無需再配置其它設定。

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.3.5.RELEASE</version>
</parent>
<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
</dependencies>

spring-boot-starter-web 中包含了大部份需要的內容

簡單的 web 程式

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);
    }
}

results matching ""

    No results matching ""