本章目標(biāo)
使用 SpringBoot 完成一個(gè)簡(jiǎn)單的 Web 應(yīng)用程序開(kāi)發(fā),初步體驗(yàn) SpringBoot 快速、簡(jiǎn)潔的特性。
操作步驟
構(gòu)建項(xiàng)目
打開(kāi) Idea,依次選擇 File -> New -> Module,打開(kāi) Module 面板。
左側(cè)欄選擇 Maven,點(diǎn)擊下一步。
填寫 groupId、artifactId、version,點(diǎn)擊下一步。
填寫項(xiàng)目名,一般保持與 artifactId 一致,點(diǎn)擊完成。
項(xiàng)目目錄結(jié)構(gòu)
- src/main/java 存放項(xiàng)目源碼
- src/main/resources 存放項(xiàng)目配置文件
- src/test/java 存放測(cè)試用例
添加依賴
引入 Spring Boot Starter 父工程
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.5.RELEASE</version>
</parent>
引入 spring-boot-starter-web 的依賴
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
編碼
- 編寫 controller 接口
創(chuàng)建 HelloSpringBootController 類,內(nèi)容如下:
@RestController
public class HelloSpringBootController {
@GetMapping("/hello")
public String hello() {
return "Hello SpringBoot";
}
}
其中,
@RestController 相當(dāng)于在 HelloSpringBootController 類上添加 @Controller 注解,以及對(duì)類中每一個(gè)方法添加 @ResponseBody 注解。
@GetMapping 相當(dāng)于在 hello 方法上添加 @RequestMapping(method = RequestMethod.GET) 注解。
- 編寫項(xiàng)目啟動(dòng)類
創(chuàng)建 Application 類,內(nèi)容如下
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
其中 @SpringBootApplication 注解用于標(biāo)記該類為項(xiàng)目啟動(dòng)類,而 main 方法中使用 SpringApplication.run(Application.class, args); 進(jìn)行項(xiàng)目啟動(dòng)。
SpringBoot 還提供了其它啟動(dòng)方式,并且可以設(shè)置啟動(dòng)參數(shù)及配置,但目前只要知道通過(guò)這樣就可以啟動(dòng) SpringBoot 項(xiàng)目即可。
至此,項(xiàng)目已經(jīng)搭建完畢,通過(guò)執(zhí)行啟動(dòng)類的 main 方法即可以啟動(dòng) SpringBoot 的 Web 項(xiàng)目了。
驗(yàn)證結(jié)果
啟動(dòng)項(xiàng)目
在 Application 類上右鍵,選擇 Run Application,項(xiàng)目正式啟動(dòng),查看啟動(dòng)日志,可以看到 SpringBoot 項(xiàng)目默認(rèn)使用 tomcat 容器,啟動(dòng)端口為 8080。
訪問(wèn)地址 http://localhost:8080/hello,可以看到輸出 Hello SpringBoot。
代碼地址
本章源碼 : https://gitee.com/gongm_24/spring-boot-tutorial.git
總結(jié)
使用 SpringBoot 搭建 Web 項(xiàng)目,其實(shí)內(nèi)部還是 SpringMVC,但是,
使用 SpringBoot 搭建 Web 項(xiàng)目比起曾經(jīng)使用 SpringMVC 一步一步搭建項(xiàng)目明顯快捷得多。
所以,SpringBoot 并不是什么新技術(shù),只是一個(gè)開(kāi)發(fā)的腳手架,幫助開(kāi)發(fā)者更快速地開(kāi)發(fā)。
擴(kuò)展
打包部署
在 IDE 中,我們可以使用 main 方法直接運(yùn)行項(xiàng)目,但是將項(xiàng)目部署至服務(wù)器上運(yùn)行,則不能如此。SpringBoot 提供了一個(gè) Maven 插件,用于將項(xiàng)目要包成一個(gè)可以執(zhí)行的 jar 包。
在 pom.xml 中添加 Maven 插件
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
執(zhí)行 maven install 后,項(xiàng)目會(huì)被打包成 jar 包,通過(guò)如下命令即可啟動(dòng)項(xiàng)目
java -jar chapter1-1.0.0-SNAPSHOT.jar