天天看點

eclipse mybatis插件_SpringBoot+Mybatis+Swagger2環境搭建

作者: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,主要配置如下圖

eclipse mybatis插件_SpringBoot+Mybatis+Swagger2環境搭建

IDEA建立SpringBoot項目-填寫項目/包名

eclipse mybatis插件_SpringBoot+Mybatis+Swagger2環境搭建

IDEA建立SpringBoot項目-選擇依賴包

點選next之後finish之後IDEA顯示正在下載下傳模闆工程,下載下傳完成後會根據pom.xml下載下傳包依賴,依賴下載下傳完畢後模闆項目就算建立成功了,如果是直接從官方網站配置下載下傳快速啟動項目可參考下圖配置

eclipse mybatis插件_SpringBoot+Mybatis+Swagger2環境搭建

直接下載下傳SpringBoot快速啟動項目-項目配置

從Search for dependencies 框中輸入并選擇Web、Mysql、Mybatis加入依賴,點選Generate Project下載下傳快速啟動項目,然後在IDE中選擇導入Maven項目,項目導入完成後可見其目錄結構如下圖

eclipse mybatis插件_SpringBoot+Mybatis+Swagger2環境搭建

快速啟動項目-項目結構

需要關注紅色方框圈起來的部分,由上往下第一個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檔案中

eclipse mybatis插件_SpringBoot+Mybatis+Swagger2環境搭建

配置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配置檔案,檔案的詳細配置資訊如下

eclipse mybatis插件_SpringBoot+Mybatis+Swagger2環境搭建

為了将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