SpringBoot 快速入門 HelloWorld

序言:SpringBoot 是在Spring基礎(chǔ)上實現(xiàn)了自動配置的基礎(chǔ)框架,快速幫助Spring整合各種第三方框架,讓項目配置化繁為簡,大幅提高開發(fā)效率。

一、SpringBoot 五大特性

  • 1.座靠Spring (顛覆傳統(tǒng))

  • 2.內(nèi)嵌Tomcat(無需外部署)

  • 3.提供各種Starter (開箱即用 +簡化依賴 )

  • 4.提供自動配置 ( 媽媽再也不用擔(dān)我寫錯配置了)

  • 5.告別XML?。▽崿F(xiàn)約定大于配置 )

    高級傳送門:SpringBoot 官方參考指南

二、SpringBoot 快速入門

1.搭建開發(fā)環(huán)境

2.創(chuàng)建第一個工程

使用官方推薦的 Spring Initializr 工具來構(gòu)建第一個SpringBoot工程,按步驟選擇Web依賴和填寫信息之后,創(chuàng)建工程成功,如下圖:

你可能會好奇:
為什么沒有web.xml?
為什么沒有applicationContext.xml?
為什么沒有webapp目錄?

為什么多了HelloWorldApplication?
為什么多了application.properties?

先別急,咱們先從簡單的搭建流程入手,答案在最后進行揭曉。

3.POM依賴管理

打開工程的POM文件,查看繼承信息和相關(guān)依賴。

  • spring-boot-starter-parent 作為父工程,提供SpringBoot和Spring的相關(guān)依賴定義。

  • spring-boot-starter-web 引入Web和WebMvc的相關(guān)依賴。

    <!-- 繼承SpringBoot父工程 -->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.6.RELEASE</version>
        <relativePath/>
    </parent>

    <!--PS: spring-boot-starter-xxx 開箱即用 無需指明版本 (默認從父類繼承版本號) -->
    <dependencies>
        <!-- 添加WEB支持 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!-- 添加Test支持 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

4.編寫RestAPI 輸出HelloWorld

Spring Initializr 已經(jīng)默認幫我們創(chuàng)建了啟動類,這里我們只需添加@Controller 和編寫相關(guān)RestAPI即可。

@SpringBootApplication
@Controller  
public class SpringbootHelloworldApplication {
    
    @GetMapping("/")  
    @ResponseBody
    public String index() {
        return "Hello World!";
    }

    public static void main(String[] args) {
        SpringApplication.run(SpringbootHelloworldApplication.class, args); //啟動項目
    }

5. 啟動項目

在上面的啟動類中,右鍵選擇Run SpringbootHelloworldApplication ,查看控制臺如下:

在瀏覽器訪問:http://locahost:8080 ,返回結(jié)果如圖:

6.單元測試

@RunWith(SpringRunner.class)
@SpringBootTest
@AutoConfigureMockMvc //開啟MockMvc
public class SpringbootHelloworldApplicationTests {

    @Autowired
    private MockMvc mockMvc; //注入MockMvc

    @Test
    public void testHelloController() throws Exception {

         mockMvc.perform(get("/")) //請求方式+地址
                .andDo(print()) //打印效果
                .andExpect(status().isOk()) //預(yù)期狀態(tài)
                .andExpect(content().string(containsString("Hello World")));
    }

}

三、快速答疑

為什么沒有XML?

回答:回顧傳統(tǒng)Spring項目,我們需要先后配置web/spring/mvc等XML配置文件。而SpringBoot則不需要XML,只需借助注解和啟動類就能啟動項目。這背后得益于SpringBoot自動配置的構(gòu)建原理,例如我們在POM文件引入了Web依賴,則項目在啟動的時候檢測到ClassPath存在Web依賴,就會自動執(zhí)行WEB環(huán)境初始化,輕松完成SpringMVC初始化。

為什么沒有webapp目錄?

回答:SpringBoot使用Resources目錄放置靜態(tài)文件和動態(tài)資源。比如static目錄可以直接讀取CSS/JS/IMG等靜態(tài)資源,而templates目錄可以直接讀取動態(tài)模板,例如Thymeleaf 和 FreeMarker 等。不過值得注意的是,如果工程項使用War類型進行打包,則必須創(chuàng)建webapp目錄,更多細節(jié)請戳《SpringBoot 工程結(jié)構(gòu)說明》

application.properties / application.yml 是什么?

回答:這是SpringBoot項目的核心配置文件,更多細節(jié)請閱讀《SpringBoot 配置文件詳解 》

HelloWorldApplication 是什么?

回答:作為項目的啟動類,添加Main方法作為啟動入口,并添加@SpringBootApplication 便攜式啟動注解。

@SpringBootApplication 主要包含三大組件:

  • @EnableAutoConfiguration 開啟自動配置.
  • @ComponentScan 開啟組件掃描 例如@Controller,@Service等.
  • @Configuration 標(biāo)記配置類 例如制定方法為上下文提供Bean.
最后編輯于
?著作權(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)容