Springboot 完整搭建快速入門,必看!


 

前言

手把手教你Springboot微服務項目搭建快速入門,通過本文學習Springboot的搭建快速入門,掌握微服務大致的配置服務,后續將會繼續將核心組件引入到項目中,歡迎關注,點贊,轉發。

 

 

Springboot項目搭建將會從以下幾個方面進行項目搭建快速入門

 

一、項目創建

新建Maven項目

根據上面操作即可完成項目搭建

 

 

二、pom.xml依賴添加

接下來在pom.xml引入springboot相關依賴

引入Springboot相關依賴,完成對項目的依賴配置。

 

 

三、新建數據庫表

首先建一張User數據庫表

1. 這里用navicat數據庫鏈接工具

2. 新建一個springboot數據庫(可自行定義)

3. 創建建表語句:

 

 

四、新建App.java項目啟動類

 

 

五、新建Controller

行App,在瀏覽器輸入:localhost:8080/hello,發現“hello spring-boot”說明第一步部署成功。

 

 

六、集成MyBatis

1. 在pom.xml文件中引入mybatis 和 數據庫(這里用mysql)的依賴

生成mapper

1. 在resources目錄下,新建一個application.properties(這里用properties,有興趣小伙伴可以使用yml文件,這里名字只用application.properties,不要用其他,否則識別不出),增加如下內容:

2. 創建好對應的model、dao、mapping文件夾,准備MyBatis的生成文件generatorConfig.xml

3. 在pom.xml文件里面引入generator的plugins

4. 運行generatorConfig.xml文件,生成對應的model、dao、mapping文件,運行方式如下:

(用這種方式是避免開發人員找不到運行的方式)

5. 運行后,可以得到下圖結果

 

 

七、UserMapper.java文件中新增登陸方法:

1. 新增登陸方法

2. 對應UserMapping.xml文件

 

 

八、 新建service實現方法

1. IUserService.java 接口

2. UserServiceImpl.java實現類

3. UserController.java類中增加login和register方法

啟動App.java,並運行:

在瀏覽器上輸入:localhost:8080/register?username=deer&password=123,顯示“注冊成功”

在瀏覽器上輸入:localhost:8080/login?username=deer&password=123,    顯示“登陸成功”

以上就完成了后台的Controller、Service、Dao之間的交互

 

 

 

九、實現事務支持

修改IUserService接口,增加一個新增batchAdd方法,在UserServiceImpl增加相應實現類,在實現類中故意產生一個被0整除得異常

1. IUserService.java接口中增加batchAdd抽象方法

2. UserService.java類中實現batchAdd()方法

3. 重新運行App.java,在瀏覽器輸入:

localhost:8080/batchAdd?username=enjoy&password=123

可以發現在瀏覽器上出現

然后檢查數據庫,發現表里面已經產生了一個錯誤的數據,產生了事務不一致問題。

 

4. 添加事務支持:

在batchAdd方法上增加@Transactional注解

重啟服務后,在瀏覽器上輸入:localhost:8080/batchAdd?username=enjoy&password=123

瀏覽器還會繼續報錯,但檢查數據庫,並沒有新增數據,由此可知事務問題已經得到了解決

 

 

 

十、全局異常

通過上面步驟,雖然已經解決了事務問題,但界面上出現這500錯誤,這對用戶來說還是不友好。

一般在企業里面對這些異常一般都會統一捕獲,由一個專門的異常處理類來統一處理。

1. 異常捕獲

新建全局異常處理類GlobalExceptionHandler.java類

重啟服務后,在瀏覽器上輸入會出現異常的服務

localhost:8080/batchAdd?username=enjoy&passwd=123

 

界面返回:

 

2. 404頁面處理

在瀏覽器上故意輸錯地址

localhost:8080/batchAddx?username=enjoy&passwd=123,后端並沒有這服務,雖然已經做了相關的異常捕獲,但瀏覽器還是顯示了:

這個時候返回頁面非常的不友好,要做404異常處理(其他異常代碼一樣)。

在配置這樣錯誤頁面的時候,以前是在WEB.XML中進行配置,而在這里,需要有個WebServerFactoryCustomizer的實例進行配置

 

3. 在前面建立的GlobalExceptionHandler,新建一個方法

4. 新建BaseController.java類

重啟服務,在瀏覽器上輸入

localhost:8080/batchAddx?username=enjoy&passwd=123

此時,頁面返回“404,沒有找到頁面!”

 

 

十一、靜態資源訪問

靜態資源:js, css, html, 圖片,音視頻等

靜態資源路徑:是指系統可以直接訪問的路徑,且路徑下的所有文件均可被用戶直接讀取。

Spring Boot默認提供靜態資源目錄位置需置於classpath下,目錄名需符合如下規則:

/static

/public

/resources

/META-INF/resources

1. 在resources目錄下面建立static文件夾,在文件夾里面任意放張圖片。

在地址欄上輸入localhost:8080/enjoy.jpg,可以看到圖片

 

 

 

十二、前端頁面

1. 引擎模板

SpringBoot 推薦使用模板引擎來渲染html,如果你不是歷史遺留項目,一定不要使用JSP,常用的模板引擎很多,有freemark,thymeleaf等,其實都大同小異

其中springboot 強烈推薦的是用thymeleaf

pom文件種添加thymeleaf的支持:

2. 新建Controller

Springboot默認的模板配置路徑為:src/main/resources/templates

在resources目錄里面新建一個templates目錄,在目錄里面新建testThymeleaf.html文件

在瀏覽器上輸入:localhost:8080/tpl/themeleaf,可以看到頁面。

 

 

 


 

十三、集成Swagger2 構建API文檔

1. Swagger2 的作用

①. 隨項目自動生成強大RESTful API文檔,減少工作量

②. API文檔與代碼整合在一起,便於同步更新API說明

③. 頁面測試功能來調試每個RESTful API

 

修改pom文件,添加swagger2的相關依賴

 

2. 新建一個swagger的配置類SwaggerConfig.java

 

3. 新建Controller用於顯示相關接口

訪問:http://localhost:8080/swagger-ui.html

如何使用呢?

以上就是swagger2的配置和使用。

 

 

十四、日志集成

在springboot中默認使用的日志工具是logback,不過在提及具體的日志工具之前要提一個名詞,這個名詞就是slf4j(Simple Logging Facade For Java)

 

百度百科解釋

https://baike.baidu.com/item/slf4j/6408868

 

slf4j不是具體的日志解決方案,它有點類似於jdbc,使用了門面模式,是一個針對各類日志的抽象實現,既然是抽象的日志實現,在springboot中肯定不需要額外導入。

 

注意:spring-boot-starter中就提供了對spring-boot-starter-logging的依賴

在spring-boot-starter-logging中可以看到以及集成了slf4j與具體實現logback的默認支持

 

1. 修改UserController

import org.slf4j.Logger;

import org.slf4j.LoggerFactory;

private final Logger logger = LoggerFactory.getLogger(UserController.class);

在瀏覽器上輸入:localhost:8080/hello,可以看控制台日志的輸出

 

2. 日志級別

修改controller 把日志的輸出改成

logger.debug("這個一個hello日志");

 

這個時候重啟,再調用,發現后台並不會有任何輸出,這原因是日志級別在作祟

 

默認情況下,Spring Boot 配置的是INFO 日志級別,也就是會輸出INFO級別以上的日志(ERROR, WARN, INFO)。

如果需要 Debug 級別的日志。在 src/main/resources/application.properties 中配置。

debug=true

此外,配置 logging.level.* 來具體輸出哪些包的日志級別。

例如

logging.level.root=INFO

logging.level.org.springframework.web=DEBUG

logging.level.cn.cansluck.controller=DEBUG

這個時候,包括springframework.web以及cn.cansluck.controller的debug日志都可以輸出來了

3. 日志文件

一般情況下,springboot日志只會輸出到控制台,並不會寫入到日志文件,但是,在一些正式環境的應用中,我們需要通過在 application.properites 文件中配置 logging.file 文件名稱和 logging.path 文件路徑,將日志輸出到日志文件中。

logging.path = /var/tmp

logging.file = xxx.log

logging.level.root = info

 

注意:

如果只配置 logging.path,在 /var/tmp文件夾生成一個日志文件為 spring.log。如果只配置 logging.file,會在項目的當前路徑下生成一個 xxx.log 日志文件。

這里有一個坑,logging.path 和logging.file都配置了,只會有logging.file生效,所以,如果要指定日志生成的具體位置使用logging.file 配置就好

 

在application.properties中配置

logging.file =D:\\log\\enjoy.log

這樣在F盤的相應位置出現日志文件

 

3. log4j2

在spring-boot-dependencies POMs中搜索spring-boot-starter-log4j2

發現Spring boot父Pom中自己提供了這個依賴,於是我們加入如下jar依賴:

 

修改pom.xml文件

注意: 由於默認使用logback在擴展log4j2之前先要把logback移除

日志使用跟上面logback一樣。

 

 


十五、使用AOP統一日志處理

為了防止在工作中經常在代碼中加入大量的日志處理代碼,在實際項目開發中,一般使用AOP統一完成日志處理工作

 

1. 修改pom文件,引入springboot對aop的支持

2. 新增AOP日志處理類

通過訪問Controller可以從日志看到,AOP切面方法已經生效

 

 

 

總結
    本文通過圖文形式,學習Springboot快速入門,包括項目創建、Springmvc集成、MyBatis集成配置、事務集成配置、全局異常配置、Swagger2集成配置、AOP統一日志處理,將整個流程大概介紹了一遍,讓想了解和學習Springboot的小伙伴能夠對整體流程有個大概了解,也希望能夠利用自己空閑時間按照上面流程完整操作一遍,可以加深自己的理解和印象。如有疑問歡迎評論留言,小編會及時回復哦~喜歡的小伙伴動動手指點個贊、收藏吧!

 

更多精彩敬請關注公眾號

 

Java極客思維

微信掃一掃,關注公眾號​


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM