天天看點

建立spring boot項目

最近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版本以上

建立spring boot項目

2. 配置項目名稱,包名

建立spring boot項目

3. 确定spring boot版本,選擇依賴

建立spring boot項目

4. 确定項目存放位址

建立spring boot項目

5. 删除一些檔案

建立spring boot項目

6. 項目主目錄

建立spring boot項目

7. 設定application.properties

這個檔案就是用來書寫spring boot項目的配置資訊的。

  1. spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
  2. spring.datasource.url=jdbc:mysql://localhost:3306/study?allowMultiQueries=true&serverTimezone=GMT%2B8
  3. spring.datasource.username=root
  4. 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項目的基本架構就搭建成功了。項目啟動成功,如圖所示:

建立spring boot項目

三、運作一個demo

建立 helloDemo.java檔案:

  1. import org.springframework.web.bind.annotation.RequestMapping;
  2. import org.springframework.web.bind.annotation.ResponseBody;
  3. import org.springframework.web.bind.annotation.RestController;
  4. import java.util.HashMap;
  5. import java.util.Map;
  6. @RestController
  7. @RequestMapping("hello")
  8. public class helloDemo {
  9.    @RequestMapping("/info")
  10.    @ResponseBody
  11.    public Map<String, String> info() {
  12.        Map<String, String> map = new HashMap<>();
  13.        map.put("name", "JKL");
  14.        map.put("sex", "男");
  15.        return map;
  16.    }
  17. }

執行效果:

建立spring boot項目

四、問題集錦

java.sql.SQLException: The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents more than one time zone.

報錯截圖:

建立spring boot項目

問題分析:

這是由于 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

繼續閱讀