在spring+springMvc+mabatis框架下集成swagger
我是在ssm框架下集成swagger的,具体的ssm搭建可以看这篇博文:
Intellij Idea下搭建基于Spring+SpringMvc+MyBatis的WebApi接口架构
本项目的GitHub地址:https://github.com/chenyangsocool/ssm.git
接下去就正式开始了:
1.通过maven导入相关swagger的jar包:
<!-- swagger -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.6.</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.6.</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.6.</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.6.</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.6.</version>
</dependency>
<!-- /swagger -->
2.在com.chenyangsocool.ssm.tools下新建swagger/Swagger2Config.java:
package com.chenyangsocool.ssm.tools.swagger;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import io.swagger.annotations.ApiOperation;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2; @Configuration //让Spring来加载该类配置
@EnableWebMvc //启用Mvc,非springboot框架需要引入注解@EnableWebMvc
@EnableSwagger2 //启用Swagger2
public class Swagger2Config {
@Bean
public Docket createRestApi() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo()).select()
//扫描指定包中的swagger注解
//.apis(RequestHandlerSelectors.basePackage("com.xia.controller"))
//扫描所有有注解的api,用这种方式更灵活
.apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))
.paths(PathSelectors.any())
.build();
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("SSM RESTful APIs")
.description("This API Document is based on RESTful Style, The description is detail and auto-generation, It's very friendly for developers.")
.termsOfServiceUrl("http://www.cnblogs.com/chenyangsocool/")
.contact("Young")
.version("1.0.0")
.build();
}
}
3.在实体类中创建注释,以Test实体类为例:
package com.chenyangsocool.ssm.model; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; @ApiModel(value="Test",description="Test")//对类进行swagger注解
public class Test {
@ApiModelProperty(value="测试id",name="id")//对类的字段属性进行swagger注解
private int id; @ApiModelProperty(value="测试内容",name="context")
private String context; @ApiModelProperty(value="测试内容的浏览数",name="viewCount")
private int viewCount; public int getId() {
return id;
} public void setId(int id) {
this.id = id;
} public String getContext() {
return context;
} public void setContext(String context) {
this.context = context;
} public int getViewCount() {
return viewCount;
} public void setViewCount(int viewCount) {
this.viewCount = viewCount;
} @Override
public String toString() {
return "Test{" +
"id=" + id +
", context='" + context + '\'' +
", viewCount=" + viewCount +
'}';
}
}
4.在TestController中添加swagger相关代码:
package com.chenyangsocool.ssm.controller; import com.chenyangsocool.ssm.model.Test;
import com.chenyangsocool.ssm.service.ITestService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping; import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest; @Controller
@RequestMapping("/test")
@Api(value = "测试信息", tags = {"测试相关接口"})//swagger控制器说明注解
public class TestController { @Resource
private ITestService testService; @RequestMapping("/index_page")
public String showIndex(HttpServletRequest request, Model model) {
int id = Integer.parseInt(request.getParameter("id"));
Test test = this.testService.getModelById(id);
//绑定对象到test/index.jsp
model.addAttribute("test", test);
return "test/index";
} @RequestMapping("/index_api")
@ResponseBody
@ApiOperation(value = "获取单个测试实例", notes = "传入一个id,获取该id对应的实例。",httpMethod = "GET")//swagger方法注解
public Test Index(HttpServletRequest request,Model model) {
int id = Integer.parseInt(request.getParameter("id"));
return this.testService.getModelById(id);
}
}
5.访问:
http://localhost:8080/ssm/swagger-ui.html
即可查看所定义的api接口列表:
注:
更多注解可以网上自己搜索
本项目的GitHub地址:https://github.com/chenyangsocool/ssm.git
后续思考:
实体类是由mybatis自动生成,那实体类中的swagger注解是否也可以由mybatis自动生成?
等我有空就把文章写上来~~
参考文章:
SpringMVC集成Swagger插件以及Swagger注解的简单使用
在spring+springMvc+mabatis框架下集成swagger的更多相关文章
- Spring+SpringMvc+Mybatis框架集成搭建教程
一.背景 最近有很多同学由于没有过SSM(Spring+SpringMvc+Mybatis , 以下简称SSM)框架的搭建的经历,所以在自己搭建SSM框架集成的时候,出现了这样或者那样的问题,很是苦恼 ...
- SSM(Spring + Springmvc + Mybatis)框架面试题
JAVA SSM框架基础面试题https://blog.csdn.net/qq_39031310/article/details/83050192 SSM(Spring + Springmvc + M ...
- 用IntelliJ IDEA 开发Spring+SpringMVC+Mybatis框架 分步搭建四:配置springmvc
在用IntelliJ IDEA 开发Spring+SpringMVC+Mybatis框架 分步搭建三:配置spring并测试的基础上 继续进行springmvc的配置 一:配置完善web.xml文件
- 用IntelliJ IDEA 开发Spring+SpringMVC+Mybatis框架 分步搭建二:配置MyBatis 并测试(1 构建目录环境和依赖)
引言:在用IntelliJ IDEA 开发Spring+SpringMVC+Mybatis框架 分步搭建一 的基础上 继续进行项目搭建 该部分的主要目的是测通MyBatis 及Spring-dao ...
- 用IntelliJ IDEA 开发Spring+SpringMVC+Mybatis框架 分步搭建一:建立MAVEN Web项目
一:创建maven web项目er
- SSH(Spring SpringMVC Hibernate)框架整合
项目说明: 使用SSH(Spring SpringMVC Hibernate)框架整合添加部门功能 项目结构 1.导入依赖jar包 <!--单测--> <dependency&g ...
- SSM(Spring +SpringMVC + Mybatis)框架搭建
SSM(Spring +SpringMVC + Mybatis)框架的搭建 最近通过学习别人博客发表的SSM搭建Demo,尝试去搭建一个简单的SSMDemo---实现的功能是对用户增删改查的操作 参考 ...
- SSM(Spring+SpringMVC+Mybatis)框架环境搭建(整合步骤)(一)
1. 前言 最近在写毕设过程中,重新梳理了一遍SSM框架,特此记录一下. 附上源码:https://gitee.com/niceyoo/jeenotes-ssm 2. 概述 在写代码之前我们先了解一下 ...
- SSM:spring+springmvc+mybatis框架中的XML配置文件功能详细解释(转)
原文:https://blog.csdn.net/yijiemamin/article/details/51156189# 这几天一直在整合SSM框架,虽然网上有很多已经整合好的,但是对于里面的配置文 ...
随机推荐
- 函数中的 arguments 对象
JavaScript函数具有像数组一样的对象,这些对象称为arguments,与传递给函数的参数相对应.传递给JavaScript函数的所有参数都可以使用arguments对象来引用. 现在我们开始学 ...
- 【MongoDB】windows下搭建Mongo主(Master)/从(slave)数据库同步
在前面一系列的文章中.我们讲述了mongodb的基本操作,高级查询以及索引的使用. 该篇博客主要说明在windows系统怎样创建主从数据库同步: 须要启动两个mongoDb文档数据库,一个是主模式启动 ...
- OpenCV2马拉松第12圈——直方图比較
收入囊中 使用4种不同的方法进行直方图比較 葵花宝典 要比較两个直方图, 首先必需要选择一个衡量直方图相似度的对照标准.也就是先说明要在哪个方面做对照. 我们能够想出非常多办法,OpenCV採用了下面 ...
- CC1150 针对低功耗无线应用设计的高度集成多通道射频发送器
Low Power Sub-1 GHz RF Transmitter 单片低成本低能耗 RF 发送芯片 应用 极低功率 UHF 无线发送器 315/433/868 和 915MHz ISM/SRD 波 ...
- visual studio xcopy /exclude测试
http://files.cnblogs.com/files/zfanlong1314/exclude%E6%B5%8B%E8%AF%95.zipxcopy 提供了 /EXCLUDE: 参数用于在复制 ...
- 电脑硬件天梯图—CPU、显卡、主板
看到许多玩家对电脑的配置一点都不懂,这里特地制作了最新的硬件天梯图--CPU,显卡,主板,让大家对电脑硬件孰优孰劣有个一目了然的了解. 看不清楚的情点击小图看大图. 首先是CPU天梯图: 其次是显卡天 ...
- 【转】C与CPP后缀的文件在编译时的区别
本文出处连接, by Ray FAN(ielnaf@qq.com) ...
- Eclipse 相同变量背景高亮显示设置(Occurrences)
为了你们查看设置的简便,本次书写重点用图片说明.
- QMsgPack的用法DEMO
QMsgPack的用法DEMO 引用单元文件: uses qstring, qmsgpack, qjson; 演示一: procedure TForm2.Button10Click(Sender: T ...
- android 各种颜色值 colors.xml
<?xml version="1.0" encoding="utf-8" ?> <resources> <color name=& ...