Spring Boot - 第一個(gè)應(yīng)用

讓我們來個(gè)簡單的“Hello World”web應(yīng)用吧。

build.gradle文件

buildscript {
    repositories {
        jcenter()
        maven { url 'http://repo.spring.io/snapshot' }
        maven { url 'http://repo.spring.io/milestone' }
    }
    dependencies {
        classpath 'org.springframework.boot:spring-boot-gradle-plugin:2.0.0.M2'
        classpath 'io.spring.gradle:dependency-management-plugin:1.0.0.RELEASE'
    }
}

apply plugin: 'java'
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'

repositories {
    jcenter()
    maven { url "http://repo.spring.io/snapshot" }
    maven { url "http://repo.spring.io/milestone" }
}

dependencies {
    compile("org.springframework.boot:spring-boot-starter-web")
    testCompile(
            "org.springframework.boot:spring-boot-starter-test",
            "junit:junit:4.12"
    )
}

group 'com.ubicycle'
version '1.0-SNAPSHOT'

sourceCompatibility = 1.8
targetCompatibility = 1.8
Java代碼
import org.springframework.boot.*;
import org.springframework.boot.autoconfigure.*;
import org.springframework.stereotype.*;
import org.springframework.web.bind.annotation.*;

@RestController
@EnableAutoConfiguration
public class Example {

    @RequestMapping("/")
    String home() {
        return "Hello World!";
    }

    public static void main(String[] args) throws Exception {
        SpringApplication.run(Example.class, args);
    }

}

Example類上的第一個(gè)注解是@RestController,你看代碼時(shí)的一個(gè)提示,對Spring來說,是個(gè)特殊的角色。這個(gè)例子里,我們的類是一個(gè)web@Controller所以當(dāng)有http請求進(jìn)來時(shí),Spring會考慮用它處理。
@RequestMapping提供路由信息,它告訴Spring任何以/為路徑的http請求會被映射到home方法上。@RestController讓Spring直接將String結(jié)果返回給請求者。

@RestController@RequestMapping都是Spring MVC的注解,不是Spring Boot 特有的注解。

@EnableAutoConfiguration注解

第二個(gè)類級別注解是@EnableAutoConfiguration。這個(gè)注解會讓Spring Boot基于你加到依賴?yán)锏膉ar包“猜”你會怎么樣配置Spring。就像加入spring-boot-starter-web加入了Tomcat和Spring MVC,自動配置會認(rèn)為你在部署一個(gè)web服務(wù)器和相應(yīng)的Spring。

Starters 和 自動配置
自動配置和Starter是好基友(配合),但這兩個(gè)概念又不是直接關(guān)聯(lián)的。你可以自由的選擇Starter以外的依賴包,Spring Boot依然會將自動配置程序做到最好。

main方法

程序的最后一部分是main方法。這只是一個(gè)標(biāo)準(zhǔn)的遵循java規(guī)范的程序入口。通過運(yùn)行這個(gè)main方法代表的是Spring Boot的SpringApplication類。SpringApplication會啟動程序,在自動配置的Tomcat web服務(wù)器里啟動Spring。我們需要將Example.class作為參數(shù)來運(yùn)行方法告訴SpringApplication誰是主要的Spring組件。args array也會傳遞任何通過命令行設(shè)置的參數(shù)。

運(yùn)行程序

此刻是時(shí)候運(yùn)行我們的程序了。因?yàn)槲覀兪褂昧?code>spring-boot-starter-parentPOM,我們就已經(jīng)有了好使的運(yùn)行目標(biāo)讓我們可以啟動程序。在項(xiàng)目的根目錄里執(zhí)行gradle bootRun啟動應(yīng)用:

$ gradle bootRun
:compileJava
:processResources NO-SOURCE
:classes
:bootRun

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::             (v2.0.0.M2)

....... . . .
....... . . . (log output here)
....... . . .
........ Started Example in 2.222 seconds (JVM running for 6.514)

打開瀏覽器輸入localhost:8080,就會看到下面的輸出:

Hello World!

ctrl-c就可以退出程序

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容