創(chuàng)建你的第一個應(yīng)用

11.1 創(chuàng)建POM

我們需要通過創(chuàng)建一個Maven的pom.xml文件開始。它是一個用來構(gòu)建項目的秘方。打開你喜歡的編輯器,并添加如下內(nèi)容:

 <?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.example</groupId>
    <artifactId>myproject</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.1.RELEASE</version>
    </parent>
    <!-- Additional lines to be added here... -->
</project>

上述的列表能夠讓你有一個可行的構(gòu)建。你可以通過運(yùn)行mvn package(目前,你可以無視“jar will be empty - no content was marked for inclusion!”的警告)

在這節(jié),你可以導(dǎo)入項目到IDE中(大部分現(xiàn)代的Java IDE都內(nèi)置了對Maven的支持)

11.2 添加依賴

Spring Boot提供了一系列的Starters使你能添加jar包到classpath中。我們的應(yīng)用已經(jīng)在POM中的parent節(jié)點使用了spring-boot-starter-parent。它是一個特殊的starter,能夠提供有用的Maven默認(rèn)值。它同時也提供依賴管理,你就可以省略依賴的versions標(biāo)簽。

其他的Starters提供你在開發(fā)特殊種類應(yīng)用所需的依賴。因為我們開發(fā)的是一個網(wǎng)頁應(yīng)用,所以添加了spring-boot-starter-web這個依賴。在此之前,我們可以通過運(yùn)行以下的命令來查看目前的項目依賴

$ mvn dependency:tree
[INFO] com.example:myproject:jar:0.0.1-SNAPSHOT

命令mvn dependency:tree打印了一個樹形的項目依賴。你可以看到spring-boot-web-starter它自身并不提供依賴。為了添加所需的依賴,編輯你的pom.xml并立即在parent節(jié)下面添加以下的依賴spring-boot-starter-web

<dependencies>
    <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
</dependencies>

如果你再次運(yùn)行mvn dependency:tree的話,你可以看到一系列額外的依賴,包括Tomcat web服務(wù)器和Spring Boot

11.3 編寫代碼

為了完成我們的程序,我們需要創(chuàng)建一個Java文件。Maven默認(rèn)從src/main/java中編譯資源,所以你需要創(chuàng)建那樣的文件目錄結(jié)構(gòu)然后添加一個名為src/main/java/Example.java的文件并包含以下代碼:

import org.springframework.boot.*;
import org.springframework.boot.autoconfigure.*;
import org.springframework.web.bind.annotion.*;

@RestController
@EnableAutoConfiguration
public class Example{
          @RequestMapping("/")
          String home(){
                     return "Hello World";
          }

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

雖然這里沒有很多的代碼,但卻發(fā)生很多我們看不到的事情,我們在不知不覺中經(jīng)歷了下一些節(jié)章節(jié)中重要的部分。

11.3.1 @RestController和@RequestMapping 注解

在我們的Example類中第一個注解就是@RestController.我們都知道它是一個固定的注解。它為閱讀代碼的人提供了暗示,對Spring來說這個類扮演了重要的角色。在這個例子中,我們的類是一個web @Controller ,所以在處理發(fā)起的web請求時,Spring就解析它們。

@ReqeustMapping注解提供了路由信息。它告訴Spring任何/路徑的HTTP請求都應(yīng)該被映射到home方法中。@RestController注解則告知Spring將字符串結(jié)果直接返回給請求者。

@RestController和@RequestMapping注解都是Spring MVC注解(它們并不是Spring Boot特有的)。詳細(xì)信息請閱讀MVC section中的Spring參考文檔。

11.3.2 @EnableAutoConfiguration注解

第二個類級的注解就是@EnableAutoConfiguration。這個注解告知Spring Boot去“猜測”你想怎樣配置Spring,基于你添加的jar依賴。由于spring-boot-starter-web添加了Tomcat和Spring MVC,自動配置則根據(jù)它假設(shè)你正在開發(fā)一個web程序

Starters和Auto-Configuration
自動配置是設(shè)計來搭配Starters更好工作的,但這兩個概念并不是直接捆綁在一起的。你可以隨心選擇starters以外的jar依賴。Spring Boot照樣能很好地自動配置你的應(yīng)用。

11.3.3 main方法

關(guān)于我們應(yīng)用的最后一部分是main方法,這就是應(yīng)用入口的一個標(biāo)準(zhǔn)方法,它遵循Java的慣例。我們通過調(diào)用run將main方法委托給了SpringApplication類。SpringApplication啟動我們的應(yīng)用,開啟Spring,相應(yīng)地啟動自動配置好的Tomcat web服務(wù)器。我們需要將Example.class作為一個參數(shù)傳給run方法以告知SpringApplication哪個是基本的Spirng組件。通過args數(shù)組暴露任何的命令行參數(shù)。

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

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

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