前后台分离式开发(swagger)
一.前后台分离开发(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)的更多相关文章
- 前后台分离开发--文件上传与下载,cookie,session
一.前后台分离开发的概念 ''' 1. 前台页面运行在前台服务器上,负责页面的渲染(静态文件的加载)与转跳 2. 后台代码运行在后台服务器上,负责数据的处理(提供数据请求的接口) ''' #如果没有前 ...
- vue+webpack项目中使用dev-server搭建虚拟服务器,请求json文件数据,实现前后台分离开发
在项目开发中,前后台分离,做了假数据,项目使用vue2.0重构,后台也推到重来了,为了不耽误开发进程,我做了虚拟的数据请求,使用vue-cli脚手架搭建的项目文件中dev-server搭建虚拟api请 ...
- 前后台分离开发时遇到循环引用问题"$ref"
1. 遇到的问题 { "errMsg": "", "data": { "baseinfo": { "freeT ...
- HTTP RESTful服务开发 spring boot+Maven +Swagger
这周配合第三方平台整合系统,需要提供HTTP REST服务和使用ActiveMQ推送消息,研究了下,做个笔记. 1.使用eclipse创建Spring Boot项目 创建Spring Boot项目( ...
- Restful风格API接口开发springMVC篇
Restful风格的API是一种软件架构风格,设计风格而不是标准,只是提供了一组设计原则和约束条件.它主要用于客户端和服务器交互类的软件.基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机 ...
- 5款强大的Java Web开发工具
1.WebBuilder这是一款开源的可视化Web应用开发和运行平台.基于浏览器的集成开发环境,采用可视化的设计模式,支持控件的拖拽操作,能轻松完成前后台应用开发:高效.稳定和可扩展的特点,适合复杂企 ...
- 2016开发一个app需要多少钱?app开发需要哪些成本-app开发问题汇总-广州达到信息
作为一个APP开发从业者,被外行的朋友们问及最多的问题是,"做一个网站需要多少钱?"或者"开发一个APP需要多少钱?".作为开发过完整网站项目和手机APP的人, ...
- 前后台彻底分离的核心文件bridge.js.
具体代码可以在我的git上下载:https://github.com/guoyansi/bridge 这里的后台使用java写的,如果不了解java的童鞋可以忽略下面这样图片. bridge.js / ...
- Java 快速开发平台 WB 6.8 发布
WebBuilder是一款开源的可视化Web应用开发和运行平台. 基于浏览器的集成开发环境,采用可视化的设计模式,支持控件的拖拽操作,能轻松完成前后台应用开发: 高效.稳定和可扩展的特点,适合复杂企业 ...
随机推荐
- for循环中嵌套setTimeout,执行顺序和结果该如何理解?
这两天在捣鼓作用域的问题,有的时候知识这个东西真的有点像是牵一发而动全身的感觉.在理解作用域的时候,又看到了一道经典的面试题和例子题. 那就是在for循环中嵌套setTimeout延时,想想之前面试的 ...
- C++二进制输入输出流接口设计
提到输入输出流,作为CPPer很自然的就会想到std::iostream,对于文本流的处理,iostream可以说足够强大,应付一般复杂度的需求毫无压力.对二进制流处理却只能用“简陋”来形容,悲催的是 ...
- jboss eap6.1(1)
最近决定把公司的项目从jboss3.x迁移出来,先试着摸索一下最新的jboss服务器,从jboss官网上下了一份jboss-eap-6.1,然后找资料准备学习,同时将此次迁移过程记录下来,以备后续复习 ...
- Windows Server 2012无法安装 .NET3.5-安装角色或功能失败,找不到源文件
新服务器搭建环境总是有很多问题.在安装MS SQL SERVER 2014 EXPRESS的时候提示无法安装成功,需要先安装 .NET Framework 3.5!但是新问题又来了,使用Windows ...
- excel文件使用navicat工具导入mysql的方法
1.在excel文件的sheet上,第1行下面插入一行,对应DB里面的字段名称,方便后面导入时做字段匹配: 2.使用Navicat ,打开工具,选择表所在的数据库,然后点击数据库名字,右键Tables ...
- linux信息收集篇之sosreport
sosreport是一个类型于supportconfig 的工具,sosreport是python编写的一个工具,适用于centos(和redhat一样,包名为sos).ubuntu(其下包名为sos ...
- 一次gcc编译失败分析
1. 场景: 在使用gcc编译时,编译器报错:xxx:'xxx'未定义的引用 2. 排查过程: 首先,我很自然的想到是不是自己使用了未定义的函数或者将函数名称写错了,在检查了一边过后,我发现自己使 ...
- 1001.A+B Format(10)
1001.A+B Format(20) github链接:[example link](https://github.com/wgc12/object-oriented 1.对题目的理解: 首先这道题 ...
- mac层和llczi层
1.何为数据链路层的(DATA LINK LAYER)的MAC子层和LLC子层? MAC子层的主要功能包括数据帧的封装/卸装,帧的寻址和识别,帧的接收与发送,链路的管理,帧的差 错控制等.MAC子层的 ...
- 8.2Solr API使用(Facet查询)
转载请出自出处:http://eksliang.iteye.com/blog/2165882 一)概述 Facet是solr的高级搜索功能之一,可以给用户提供更友好的搜索体验.在搜索关键字的同时,能够 ...