作者:追夢1819
原文:https://www.cnblogs.com/yanfei1819/p/10819728.html
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!
前言
博主從去年開始,項目中使用的框架逐漸被 SpringBoot 取代。今年獨立負責的兩個項目也都是用 SpringBoot ,看過不少資料、博客。網上的資源,內容有長有短,參差不齊。有的內容甚至存在誤導性,誤導讀者從一個坑跳進另一個坑。另外,在項目中使用的 SpringBoot 的功能比較零散。
基於此,想系統整理其相關的知識點以及項目中踩得坑,並記錄。一是作為自己的一個成長筆記,一是提醒后來的新人繞過已經踩過的坑。
此為本系列博客的寫作初心。
## 概念
Spring Boot是由Pivotal團隊提供的全新框架,其設計目的是用來簡化新Spring應用的初始搭建以及開發過程。該框架使用了特定的方式來進行配置,從而使開發人員不再需要定義樣板化的配置。
springboot 不是一門新技術。它是一個簡化Spring應用開發的一個框架,整個Spring技術棧的一個大整合,更提供了J2EE開發的一站式解決方案。
博主更願意把它理解為一個技術平台(不知道這樣理解是否合適,歡迎大佬拍磚),幾乎把所有的Java主流技術都整合進去,讓開發者“隨用隨取”,不會陷入到繁雜的配置文件中無法自拔。
優點
-
自動化配置(springboot的核心特性);
-
簡化spring的配置,無需xml配置文件;
-
內嵌了Tomcat、Jetty等容器;
-
直接運行jar包;
......
## 核心
spring 應用程序開發中,有四個核心:
- 自動配置:針對很多Spring應用程序常見的應用功能,Spring Boot能自動提供相關配置
- 起步依賴:告訴Spring Boot需要什么功能,它就能引入需要的庫。
- 命令行界面:這是Spring Boot的可選特性,借此你只需寫代碼就能完成完整的應用程序,無需傳統項目構建。
- Actuator:讓你能夠深入運行中的Spring Boot應用程序,一套究竟。
由於篇幅所限,此處先接觸一下基本概念,不做深入講解。后續會一一展開。
快速構建項目
maven構建項目
- 進入SpringBoot 項目構建網站 https://start.spring.io/ (如下);
- 選擇對應的工具、語言、版本、相關信息、依賴等,按住
alt
+Enter
下載,然后解壓,導入IDE。
IDEA 構建項目
個人推薦使用 idea 構建, 方便,簡潔,“傻瓜式”構建,直接 下一步
即可。感興趣的可以參照之前的博客:https://www.cnblogs.com/yanfei1819/p/7798499.html
### 項目結構說明
如上圖所示,Spring Boot項目的基礎結構共三個文件:
- src/main/java 程序開發以及主程序入口
- src/main/resources 配置文件
- src/test/java 測試程序
- DemoApplication 類是程序入口
- application.properties 是程序配置文件
在引入web模塊后,src/main/resources/static 是靜態資源文件放置路徑;src/main/resources/template 是使用模板引擎時放置的 .html
靜態頁面。還有其他的一些路徑,后續會一一闡述。
### 程序啟動
程序員的入門課一般都是 Hello Word!
,下面我們演示 SpringBoot 版的 Hello Word!
。
創建controller層:
package com.yanfei1819.demo.web.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.ResponseBody;
/**
* Created by 追夢1819 on 2019-05-06.
*/
@Controller
public class HelloWordController {
@ResponseBody
@GetMapping("/helloWord") // <===> @RequestMapping(value = "/helloWord",method = RequestMethod.GET)
public String helloWord(){
return "Hello Word,SpringBoot!";
}
}
注意兩點:
@GetMapping("/helloWord")
等價於@RequestMapping(value = "/helloWord",method = RequestMethod.GET)
;- 加上
@ResponseBody
后,返回結果不會被解析為跳轉路徑,而是直接寫入返回值中。如果不加,則會解析為跳轉路徑; - 程序默認的端口號是 8080,可以通過 application.properties 配置文件的
server.port=
進行修改。
以上程序通過 postman 測試結果是:
總結
SpringBoot 涉及的內容很多,如果沒有一個系統的主線去學習,會感覺很零散。以上內容作為本系列博客的入門篇。后續會將 SpringBoot 的功能點一一展開。
源碼:我的GitHub
本文同步於公眾號【技術和人生】,歡迎關注。