前後臺分離式開發(swagger)

来源:https://www.cnblogs.com/Harriss/archive/2019/04/23/10755091.html
-Advertisement-
Play Games

這裡演示的是前期框架的搭建,剩下的Controller就很簡單了 ...


一.前後臺分離開發(swagger)

1.安裝maven

  配置的maven環境變數   

    M2_HOME/MAVEN_HOME

    Path

      %M2_HOME%/bin

    打開運行視窗:輸入mvn -v,查看是否安裝好。

  settings中的設置倉庫的位置,倉庫我已經給出,在我的百度網盤下載即可   

      鏈接:https://pan.baidu.com/s/193SKtpG62Fyq3vQgTgPgGA

      提取碼:ksa5

2.eclipse中配置maven

  eclipse中配置maven,配置過程在網上搜索“eclipse maven配置過程”,這裡不在詳述

  jdk配置這裡不再詳述,在網上搜索即可

3.eclipse更改jdk環境

      

4.創建項目,引入的依賴,暫時引入基本的幾個依賴

  註:整個項目的創建過程必須在聯網狀態,他會自動下載些依賴和jar

      

5.在項目中新建以下幾個包,用於存放自動生成的bean類、映射介面和映射文件

      

6.插入文件generatorConfig.xml,代碼如下

         

  註:代碼中有幾個地方需要更改

    在第七行是自己配置的倉庫中的jar包,註意路徑別寫錯了。

    jdbcConnection標簽的屬性需要更改,填寫自己的遠程或者本地的mysql資料庫

     javaModelGenerator標簽的targetPackage屬性要更改(存放自動生成的bean類)
     sqlMapGenerator,標簽的屬性targetPackage值要更改(自動生成的*Mapper.xml文件存放路徑
   javaClientGenerator標簽屬性targetPackage值要更改(自動生成的*Mapper.java存放路徑)
   在最後的映射配置塊中:根據資料庫中表以及業務邏輯情況自動生成bean類、映射介面和映射文件
 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <!DOCTYPE generatorConfiguration
 3   PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
 4   "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
 5 <!-- mybatis-generator的核心配置文件 -->
 6 <generatorConfiguration>
 7   <classPathEntry location="D:\android\repository\mysql\mysql-connector-java\8.0.15\mysql-connector-java-8.0.15.jar" />
 8 
 9   <context id="DB2Tables" targetRuntime="MyBatis3">
10 
11     <!--自己的遠程或者本地的mysql伺服器-->
12     <jdbcConnection driverClass="com.mysql.jdbc.Driver"
13                     connectionURL="jdbc:mysql://127.0.0.1:3306/course" 
14                     userId="root"
15                     password="root">
16       <property name="useInformationSchema" value="true"/>
17     </jdbcConnection>
18     <!--指定生成的類型為java類型,避免資料庫中number等類型欄位 -->
19     <javaTypeResolver >
20       <property name="forceBigDecimals" value="false" />
21     </javaTypeResolver>
22 
23     <!--自動生成的實體的存放包路徑 -->
24     <javaModelGenerator targetPackage="com.briup.apps.app01.bean" targetProject="./src/main/java">
25       <property name="enableSubPackages" value="true" />
26       <property name="trimStrings" value="true" />
27     </javaModelGenerator>
28 
29     <!--自動生成的*Mapper.xml文件存放路徑 -->
30     <sqlMapGenerator targetPackage="mapper"  targetProject="./src/main/resources">
31       <property name="enableSubPackages" value="true" />
32     </sqlMapGenerator>
33 
34     <!--自動生成的*Mapper.java存放路徑 -->
35     <javaClientGenerator type="XMLMAPPER" targetPackage="com.briup.apps.app01.mapper"  targetProject="./src/main/java">
36       <property name="enableSubPackages" value="true" />
37     </javaClientGenerator>
38 
39     
40     <!-- 映射配置 -->
41     <table tableName="c_user" domainObjectName="User" ></table>
42     <table tableName="c_course" domainObjectName="Course" ></table>
43     <table tableName="c_student_course" domainObjectName="StudentCourse" ></table>
44 
45   </context>
46 </generatorConfiguration>

 7.在pom.xml文件中添加依賴、添加插件

    在<build>中的<plugins>標簽中添加mybatis-generator插件,代碼如下:

<plugin>
     <groupId>org.mybatis.generator</groupId>
     <artifactId>mybatis-generator-maven-plugin</artifactId>
     <version>1.3.5</version>
</plugin>

    dependencys標簽中添加swagger2的依賴,代碼如下:

<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger2</artifactId>
    <version>2.6.1</version>
</dependency>
<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger-ui</artifactId>
    <version>2.6.1</version>
</dependency>

 Ctrl+s保存,等eclipse最下方的進度條完了之後在進行下一步操作。

    

8.修改application.properties

#本地
#spring.datasource.driverClassName=com.mysql.jdbc.Driver
#spring.datasource.url=jdbc:mysql://localhost:3306/course?serverTimezone=UTC
#spring.datasource.username=root
#spring.datasource.password=root

#遠程
spring.datasource.driverClassName=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://*.*.*.*:3306/course?useUnicode=true&characterEncoding=utf-8
spring.datasource.username=root
spring.datasource.password=root

server.port=8888

mybatis.mapper-locations= classpath:/mapper/**/*.xml 

 9.打開命令視窗,執行generatorConfig.xml文件

  mvn -Dmybatis.generator.overwrite=true mybatis-generator:generate

   

  相應的目錄中會生成相應的beanmapper映射文件

  ......

10.創建Swagger2配置類

1)config包中創建Swagger2的配置類Swagger2

      

@Configuration
@EnableSwagger2
public class Swagger2 {

    @Bean
    public Docket createRestApi() {
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.briup.apps.app01.web"))
                .paths(PathSelectors.any())
                .build();
    }
    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                .title("Spring Boot中使用Swagger2構建RESTful APIs")
                .description("更多Spring Boot相關文章請關註:http://blog.didispace.com/")
                .termsOfServiceUrl("http://blog.didispace.com/")
                .contact("程式猿DD")
                .version("1.0")
                .build();
    }
}

   如上代碼所示,通過@Configuration註解,讓Spring來載入該類配置。再通過@EnableSwagger2註解來啟用Swagger2.

再通過createRestApi函數創建Docket的Bean之後,apiInfo()用來創建該Api的基本信息(這些基本信息會展現在文檔頁面中)

2)添加文檔內容(後期的業務邏輯中,首次框架搭建這裡可以跳過)

  在controller中使用註解

  @ApiOperation註解來給API增加說明

  @ApiImplicitParams、@ApiImplicitParam註解來給參數增加說明

  如下截圖所示

  

11.添加@MapperScan註釋的類(用戶掃描mapper包下的所有mapper映射介面類)

          

 

  代碼如下

package com.briup.apps.app01.config;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.context.annotation.Configuration;

@Configuration
//掃面com.briup.apps.app01.mapper包下的所有的mapper映射介面 @MapperScan(
"com.briup.apps.app01.mapper") public class MybatisConfig { }

12.運行項目:mvn spring-boot:run

    

    打開瀏覽器測試是否運行成功。

    

13.項目打包

  如果項目要進行打包,這裡打成war包,

1)pom.xml文件中更改包的類型

    

2).pom.xml文件中添加跳過測試

    

3).打包

    Goals中輸入:package

      

  得到包:

      

  運行測試包

     

4).打開瀏覽器進行測試,是否成功

    


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 轉自:https://www.cnblogs.com/kidsitcn/p/7182274.html 比例尺函數是這樣的javascript函數: 接收通常是數字,日期,類別等data輸入並且: 返回一個代表可視化元素的值,比如坐標,顏色,長度或者半徑等 比例尺通常用於變換(或者說映射)抽象的數據值 ...
  • 做法就是使用iframe標簽 1.text,pdf的文件預覽 <iframe class="filename" :src="文件的地址" width='100%' height='600' frameborder='1' ></iframe> 2.doc,xls,ppt等office的預覽 <ifr ...
  • 一、對象的擴展 1.1對象屬性名錶達式 ES6可以在JSON中使用[]包裹一個key的名字。此時這個key將用表達式作為屬性名(被當做變數求值),這個key值必須是字元串。 1.2 Object.assign()方法 該方法用於對象的合併,將源對象的所有可枚舉的屬性,複製到目標對象。 Object. ...
  • 譯者按: 為什麼偏要用 符號? 原文 : "JavaScript's new private class fields" 譯者 : "Fundebug" 本文采用意譯,版權歸原作者所有 "proposal class fields" 與 "proposal private methods" 定義了 ...
  • 文章首發: "結構型模式:組合模式" 七大結構型模式之三:組合模式。 簡介 姓名 :組合模式 英文名 :Composite Pattern 價值觀 :專門解決各種樹形疑難雜症 個人介紹 : Compose objects into tree structures to represent part ...
  • 1 三次作業的設計策略 經過了上一單元的訓練,我也積累了一些設計策略上的經驗。在這一單元的一開始,我便儘可能地把問題中的各個功能實體區分開來,分別封裝成類,以便於隨後作業中新需求的加入。與此同時,我也在有意地控制住方法的規模,依照程式邏輯層次化地設計方法,使得每個方法都不至於過分臃腫,從而增加代碼的 ...
  • 1. " java爬蟲系列第一講 爬蟲入門(爬取動作片列表)" 2. " java爬蟲系列第二講 爬取最新動作電影《海王》迅雷下載地址" 3. " java爬蟲系列第三講 獲取頁面中絕對路徑的各種方法" 4. " java爬蟲系列第四講 採集"極客時間"專欄文章、視頻專輯" 5. "java爬蟲系列 ...
  • [TOC] 電梯作業總結 程式結構與複雜度的分析 第一次作業 1.設計思路 第一次作業是電梯作業的第一次,也是我多線程變成的第一次實踐。任務是編寫一個多線程實時電梯系統,採用FAFS的調度方式。由於第一次作業中沒有涉及到多部電梯以及捎帶的情況,因此來說是比較簡單的。我採用的是指導書提示部分中的模式, ...
一周排行
    -Advertisement-
    Play Games
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...