一.前后台分离开发(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类、映射接口和映射文件
 <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfiguration
PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
"http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
<!-- mybatis-generator的核心配置文件 -->
<generatorConfiguration>
<classPathEntry location="D:\android\repository\mysql\mysql-connector-java\8.0.15\mysql-connector-java-8.0.15.jar" /> <context id="DB2Tables" targetRuntime="MyBatis3"> <!--自己的远程或者本地的mysql服务器-->
<jdbcConnection driverClass="com.mysql.jdbc.Driver"
connectionURL="jdbc:mysql://127.0.0.1:3306/course"
userId="root"
password="root">
<property name="useInformationSchema" value="true"/>
</jdbcConnection>
<!--指定生成的类型为java类型,避免数据库中number等类型字段 -->
<javaTypeResolver >
<property name="forceBigDecimals" value="false" />
</javaTypeResolver> <!--自动生成的实体的存放包路径 -->
<javaModelGenerator targetPackage="com.briup.apps.app01.bean" targetProject="./src/main/java">
<property name="enableSubPackages" value="true" />
<property name="trimStrings" value="true" />
</javaModelGenerator> <!--自动生成的*Mapper.xml文件存放路径 -->
<sqlMapGenerator targetPackage="mapper" targetProject="./src/main/resources">
<property name="enableSubPackages" value="true" />
</sqlMapGenerator> <!--自动生成的*Mapper.java存放路径 -->
<javaClientGenerator type="XMLMAPPER" targetPackage="com.briup.apps.app01.mapper" targetProject="./src/main/java">
<property name="enableSubPackages" value="true" />
</javaClientGenerator> <!-- 映射配置 -->
<table tableName="c_user" domainObjectName="User" ></table>
<table tableName="c_course" domainObjectName="Course" ></table>
<table tableName="c_student_course" domainObjectName="StudentCourse" ></table> </context>
</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

   

  相应的目录中会生成相应的bean、mapper映射文件

  ......

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).打开浏览器进行测试,是否成功

    

前后台分离式开发(swagger)的更多相关文章

  1. 前后台分离开发--文件上传与下载,cookie,session

    一.前后台分离开发的概念 ''' 1. 前台页面运行在前台服务器上,负责页面的渲染(静态文件的加载)与转跳 2. 后台代码运行在后台服务器上,负责数据的处理(提供数据请求的接口) ''' #如果没有前 ...

  2. vue+webpack项目中使用dev-server搭建虚拟服务器,请求json文件数据,实现前后台分离开发

    在项目开发中,前后台分离,做了假数据,项目使用vue2.0重构,后台也推到重来了,为了不耽误开发进程,我做了虚拟的数据请求,使用vue-cli脚手架搭建的项目文件中dev-server搭建虚拟api请 ...

  3. 前后台分离开发时遇到循环引用问题"$ref"

    1. 遇到的问题 { "errMsg": "", "data": { "baseinfo": { "freeT ...

  4. HTTP RESTful服务开发 spring boot+Maven +Swagger

    这周配合第三方平台整合系统,需要提供HTTP REST服务和使用ActiveMQ推送消息,研究了下,做个笔记. 1.使用eclipse创建Spring Boot项目  创建Spring Boot项目( ...

  5. Restful风格API接口开发springMVC篇

    Restful风格的API是一种软件架构风格,设计风格而不是标准,只是提供了一组设计原则和约束条件.它主要用于客户端和服务器交互类的软件.基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机 ...

  6. 5款强大的Java Web开发工具

    1.WebBuilder这是一款开源的可视化Web应用开发和运行平台.基于浏览器的集成开发环境,采用可视化的设计模式,支持控件的拖拽操作,能轻松完成前后台应用开发:高效.稳定和可扩展的特点,适合复杂企 ...

  7. 2016开发一个app需要多少钱?app开发需要哪些成本-app开发问题汇总-广州达到信息

    作为一个APP开发从业者,被外行的朋友们问及最多的问题是,"做一个网站需要多少钱?"或者"开发一个APP需要多少钱?".作为开发过完整网站项目和手机APP的人, ...

  8. 前后台彻底分离的核心文件bridge.js.

    具体代码可以在我的git上下载:https://github.com/guoyansi/bridge 这里的后台使用java写的,如果不了解java的童鞋可以忽略下面这样图片. bridge.js / ...

  9. Java 快速开发平台 WB 6.8 发布

    WebBuilder是一款开源的可视化Web应用开发和运行平台. 基于浏览器的集成开发环境,采用可视化的设计模式,支持控件的拖拽操作,能轻松完成前后台应用开发: 高效.稳定和可扩展的特点,适合复杂企业 ...

随机推荐

  1. 关于子元素的margin-top溢出和元素浮动对父元素高度影响解决方案

    以下是个人学习笔记,仅供学习参考. 1.关于子元素的margin-top作用在无margin-top-border的父元素上导致子元素的margin-top溢出问题. 在给没有margin-top-b ...

  2. ionic 项目下 有时候发现select标签用动态数据绑定后点击出不来的情况

    一 第一种方法 在select 标签的父标签加上  data-tap-disabled=”true” 二 找到 ionic.bundle.js文件 下边有个方法 function tapIgnoreE ...

  3. LeetCode题解之 Sum of Left Leaves

    1.题目描述 2.问题分析 对于每个节点,如果其左子节点是叶子,则加上它的值,如果不是,递归,再对右子节点递归即可. 3.代码 int sumOfLeftLeaves(TreeNode* root) ...

  4. LeetCode题解之Binary Number with Alternating Bits

    1.题目描述 2.问题分析 将数值转换为二进制,然后将前面的 0 去掉,再遍历一边二进制字符串,对每个字符和其后部的字符进行比较. 3.代码 bool hasAlternatingBits(int n ...

  5. for之于while的优势

    前言 for与while各有功效,下面就只列举for之于while的优势有哪些 优势 1.循环中提供了特殊的机会来将变量的作用域最小化.(无论是传统的还是for-each形式的)for循环,都允许声明 ...

  6. MySQl新特性 GTID

    GTID简介 概念 全局事务标识符(GTID)是创建的唯一标识符,并与在源(主)服务器上提交的每个事务相关联.此标识符不但是唯一的,而且在给定复制设置中的所有服务器上都是唯一的.所有交易和所有GTID ...

  7. 转:C# 深入理解堆栈、堆在内存中的实现

    尽管在.NET framework下我们并不需要担心内存管理和垃圾回收(GarbageCollection),但是我们还是应该了解它们,以优化我们的应用程序.同时,还需要具备一些基础的内存管理工作机制 ...

  8. Android external扩展工程

    Android的扩展工程包含在external文件夹中,这是一些经过修改后适应Android系统的开源工程,这些工程有些在主机上运行,有些在目标机上运行: 工程名称  工程描述  aes  高级加密标 ...

  9. 【linux命令】lscpu、etc/cpuinfo详解

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 i2000:~ # lscpu Architecture:          x86_ ...

  10. round()和trunc()用法

    round(数字 | 列 保留小数的位数):四舍五入. select a.*,round(s),round(-s) from bqh4 a trunc(数字 | 列 保留小数的位数):舍弃指定位置的内 ...