最近Spring boot真是越來越火了,是以就想學習并寫一個Spring boot的系列文章。以前大家一說spring的時候,都會想到Spring mvc架構,但是Spring mvc配置檔案真是太多啦,而且每一個項目配置檔案的内容都是差不多的,配置起來真是太費勁了。
還好現在Spring boot架構火了起來,原因就是約定大于配置,多數 Spring Boot 應用隻需要很少的 Spring 配置,搭建一個spring boot項目真的是幾秒就可以,大大簡化了配置檔案的編寫。缺點就是封裝太多,自動化太強,不如Spring mvc那樣易懂,文檔略少,版本疊代速度很快,也證明了該架構目前很火的趨勢。
說了這麼多,那麼spring boot都有哪些優點呢?讓這麼多人都愛不釋手
一、Spring boot優點
- 使用 Spring 項目引導頁面可以在幾秒建構一個項目
- 友善對外輸出各種形式的服務,如 REST API、WebSocket、Web、Streaming、Tasks
- 非常簡潔的安全政策內建
- 支援關系資料庫和非關系資料庫
- 支援運作期内嵌容器,如 Tomcat、Jetty
- 強大的開發包,支援熱啟動
- 自動管理依賴
- 自帶應用監控
- 支援各種 IED,如 IntelliJ IDEA 、NetBeans
- 使測試變的簡單,如JUnit、Spring Test & Spring Boot Test
- 強大的日志架構,如logback
有點說了這麼多,還是得靠自己以後慢慢摸索,這裡就當是先提個醒,接下來,我們來建立Spring boot項目
二、建立spring boot項目
1. 打開idea,選擇建立項目,java要1.8版本以上

2. 配置項目名稱,包名
3. 确定spring boot版本,選擇依賴
4. 确定項目存放位址
5. 删除一些檔案
6. 項目主目錄
7. 設定application.properties
這個檔案就是用來書寫spring boot項目的配置資訊的。
- spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
- spring.datasource.url=jdbc:mysql://localhost:3306/study?allowMultiQueries=true&serverTimezone=GMT%2B8
- spring.datasource.username=root
- spring.datasource.password=root123
上述配置是配置了mysql相關的配置資訊,說明:
- driver:使用高版本的 mysql-connector-java.jar,之前的配置 com.mysql.cj.jdbc.Driver會被spring boot 2.1.0提示已被廢棄,建議使用 com.mysql.cj.jdbc.Driver。像本項目,使用的 mysql-connector-java.jar版本就是 8.0.13。(注:可在pom.xml檔案内右鍵點選 Maven的 showEffectivePOM中檢視對應pom依賴的版本資訊)
- url:主要由主機+端口号+資料庫拼湊而成, allowMultiQueries=true代表允許sql語句執行批量操作; serverTimezone=GMT%2B8代表時區--東八區,在mysql驅動高版本中必須得設定時區。
- username:資料庫賬号
- password:資料庫密碼
至此,spring boot項目的基本架構就搭建成功了。項目啟動成功,如圖所示:
三、運作一個demo
建立 helloDemo.java檔案:
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.bind.annotation.ResponseBody;
- import org.springframework.web.bind.annotation.RestController;
- import java.util.HashMap;
- import java.util.Map;
- @RestController
- @RequestMapping("hello")
- public class helloDemo {
- @RequestMapping("/info")
- @ResponseBody
- public Map<String, String> info() {
- Map<String, String> map = new HashMap<>();
- map.put("name", "JKL");
- map.put("sex", "男");
- return map;
- }
- }
執行效果:
四、問題集錦
java.sql.SQLException: The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents more than one time zone.
報錯截圖:
問題分析:
這是由于 mysql-connector-java.jar高版本所導緻,高版本要求jdbc連接配接的url後面必須要有時區的設定。
解決辦法:
在jdbc的url後面加上 serverTimezone=GMT%2B8,即可解決問題。 GMT%2B8代表時區東八區。
例如: spring.datasource.url=jdbc:mysql://localhost:3306/study?allowMultiQueries=true&serverTimezone=GMT%2B8