作者:calebman來源:https://www.jianshu.com/p/95946d6b0c7d
本文簡介
- 為什麼使用SpringBoot
- 搭建怎樣一個環境
- 開發環境
- 導入快速啟動項目
- 內建前準備
- 內建Mybatis
- 內建Swagger2
- 多環境配置
- 多環境下的日志配置
- 常用配置
為什麼使用SpringBoot
SpringBoot相對于傳統的SSM架構的優點是提供了預設的樣闆化配置,簡化了Spring應用的初始搭建過程,如果你不想被衆多的xml配置檔案困擾,可以考慮使用SpringBoot替代
搭建怎樣一個環境
本文将基于Spring官方提供的快速啟動項目模闆內建Mybatis、Swagger2架構,并講解mybatis generator一鍵生成代碼插件、logback、一鍵生成文檔以及多環境的配置方法,最後再介紹一下自定義配置的注解擷取、全局異常處理等經常用到的東西。
開發環境
本人使用IDEA作為開發工具,IDEA下載下傳時預設內建了SpringBoot的快速啟動項目可以直接建立,如果使用Eclipse的同學可以考慮安裝SpringBoot插件或者直接從這裡配置并下載下傳SpringBoot快速啟動項目,需要注意的是本次環境搭建選擇的是SpringBoot2.0的快速啟動架構,SpringBoot2.0要求jdk版本必須要在1.8及以上。
https://start.spring.io/
導入快速啟動項目
不管是由IDEA導入還是現實下載下傳模闆工程都需要初始化快速啟動工程的配置,如果使用IDEA,在建立項目時選擇Spring Initializr,主要配置如下圖
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLicmbw5CO2kTY2YjM1IWNwImY3ETO4gzYxYjYmBjM1gDOwADOl9CX0JXZ252bj91Ztl2Lc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
IDEA建立SpringBoot項目-填寫項目/包名
IDEA建立SpringBoot項目-選擇依賴包
點選next之後finish之後IDEA顯示正在下載下傳模闆工程,下載下傳完成後會根據pom.xml下載下傳包依賴,依賴下載下傳完畢後模闆項目就算建立成功了,如果是直接從官方網站配置下載下傳快速啟動項目可參考下圖配置
直接下載下傳SpringBoot快速啟動項目-項目配置
從Search for dependencies 框中輸入并選擇Web、Mysql、Mybatis加入依賴,點選Generate Project下載下傳快速啟動項目,然後在IDE中選擇導入Maven項目,項目導入完成後可見其目錄結構如下圖
快速啟動項目-項目結構
需要關注紅色方框圈起來的部分,由上往下第一個java類是用來啟動項目的入口函數,第二個properties字尾的檔案是項目的配置檔案,第三個是項目的依賴包以及執行插件的配置
內建前準備
修改.properties為.yml
yml相對于properties更加精簡而且很多官方給出的Demo都是yml的配置形式,在這裡我們采用yml的形式代替properties,相對于properties形式主要有以下兩點不同
- 對于鍵的描述由原有的 "." 分割變成了樹的形狀
- 對于所有的鍵的後面一個要跟一個空格,不然啟動項目會報配置解析錯誤
# properties式文法描述spring.datasource.name = mysqlspring.datasource.url = jdbc:mysql://localhost:3306/db?characterEncoding=utf-8spring.datasource.username = rootspring.datasource.password = 123# yml式文法描述spring: datasource: name: mysql url: jdbc:mysql://localhost:3306/db?characterEncoding=utf-8 username: root password: 123
配置所需依賴
快速啟動項目建立成功後我們觀察其pom.xml檔案中的依賴如下圖,包含了我們選擇的Web、Mybatis以及Mysql
org.springframework.boot spring-boot-starter-web org.mybatis.spring.boot mybatis-spring-boot-starter 1.3.1mysql mysql-connector-java runtimeorg.springframework.boot spring-boot-starter-test test
但是我們使用ORM架構一般還會配合資料庫連接配接池以及分頁插件來使用,在這裡我選擇了阿裡的druid以及pagehelper這個分頁插件,再加上我們還需要整合swagger2文檔自動化建構架構,是以增加了以下四個依賴項
com.github.pagehelper pagehelper-spring-boot-starter 1.2.3com.alibaba druid-spring-boot-starter 1.1.1com.alibaba fastjson 1.2.31io.springfox springfox-swagger2 2.5.0
內建Mybatis
Mybatis的配置主要包括了druid資料庫連接配接池、pagehelper分頁插件、mybatis-generator代碼逆向生成插件以及mapper、pojo掃描配置
配置druid資料庫連接配接池
添加以下配置至application.yml檔案中
配置pagehelper分頁插件
# pagehelper分頁插件pagehelper: # 資料庫的方言 helperDialect: mysql # 啟用合理化,如果pageNum < 1會查詢第一頁,如果pageNum > pages會查詢最後一頁 reasonable: true
代碼逆向生成插件mybatis-generator的配置及運作
mybatis-generator插件的使用主要分為以下三步
1.pom.xml中添加mybatis-generator插件
org.springframework.boot spring-boot-maven-plugin org.mybatis.generator mybatis-generator-maven-plugin 1.3.2 ${basedir}/src/main/resources/generator/generatorConfig.xml truetrue
2.建立逆向代碼生成配置檔案generatorConfig.xml
參照pom.xml插件配置中的掃描位置,在resources目錄下建立generator檔案夾,在建立的檔案夾中建立generatorConfig.xml配置檔案,檔案的詳細配置資訊如下
為了将generatorConfig.xml配置模闆化,在這裡将變動性較大的配置項單獨提取出來作為一個generatorConfig.xml的配置檔案,然後通過properties标簽讀取此檔案的配置,這樣做的好處是當需要多處複用此xml時隻需要關注少量的配置項。
在generatorConfig.xml同級建立generator.properties檔案,現隻需要配置generator.properties檔案即可,配置内容如下
# 請手動配置以下選項# 資料庫驅動:選擇你的本地硬碟上面的資料庫驅動包classPathEntry = D:/CJH/maven-repository/mysql/mysql-connector-java/5.1.30/mysql-connector-java-5.1.30.jar# 資料庫名稱、使用者名、密碼db = dbuserId = rootpassword = 123# 生成pojo的包名位置 在src/main/java目錄下pojoTargetPackage = com.spring.demo.springbootexample.mybatis.po# 生成DAO的包名位置 在src/main/java目錄下daoTargetPackage = com.spring.demo.springbootexample.mybatis.mapper# 生成Mapper的包名位置 位于src/main/resources目錄下mapperTargetPackage = mapper
3.運作mybatis-generator插件生成Dao、Model、Mapping
# 打開指令行cd到項目pom.xml同級目錄運作以下指令mvn mybatis-generator:generate -e
mybatis掃描包配置
至此已經生成了指定資料庫對應的實體、映射類,但是還不能直接使用,需要配置mybatis掃描位址後才能正常調用
1.在application.yml配置mapper.xml以及pojo的包位址
mybatis: # mapper.xml包位址 mapper-locations: classpath:mapper/*.xml # pojo生成包位址 type-aliases-package: com.spring.demo.springbootexample.mybatis.po
2.在SpringBootExampleApplication.java中開啟Mapper掃描注解
@[email protected]("com.spring.demo.springbootexample.mybatis.mapper")public class SpringBootExampleApplication { public static void main(String[] args) { SpringApplication.run(SpringBootExampleApplication.class, args); }}
測試mapper的有效性
@Controllerpublic class TestController { //替換成自己生成的mapper @Autowired UserMapper userMapper; @RequestMapping("/test") @ResponseBody public Object test(){ //查詢該表的所有資料 return userMapper.selectByExample(null); }}
啟動SpringBootExampleApplication.java的main函數,如果沒有在application.yml特意配置server.port那麼springboot會采用預設的8080端口運作,運作成功将列印如下日志
Tomcat started on port(s): 8080 (http) with context path ''
在浏覽器輸入位址如果傳回表格的中的所有資料代表mybatis內建成功
http://localhost:8080/test
內建Swagger2
Swagger2是一個文檔快速建構工具,能夠通過注解自動生成一個Restful風格json形式的接口文檔,并可以通過如swagger-ui等工具生成html網頁形式的接口文檔,swagger2的內建比較簡單,使用需要稍微熟悉一下,內建、注解與使用分如下四步
1.建立SwaggerConfig檔案
@Configurationpublic class SwaggerConfig { // 接口版本号 private final String version = "1.0"; // 接口大标題 private final String title = "SpringBoot示例工程"; // 具體的描述 private final String description = "API文檔自動生成示例"; // 服務說明url private final String termsOfServiceUrl = "http://www.kingeid.com"; // licence private final String license = "MIT"; // licnce url private final String licenseUrl = "https://mit-license.org/"; // 接口作者聯系方式 private final Contact contact = new Contact("calebman