我是在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的更多相关文章

  1. Spring+SpringMvc+Mybatis框架集成搭建教程

    一.背景 最近有很多同学由于没有过SSM(Spring+SpringMvc+Mybatis , 以下简称SSM)框架的搭建的经历,所以在自己搭建SSM框架集成的时候,出现了这样或者那样的问题,很是苦恼 ...

  2. SSM(Spring + Springmvc + Mybatis)框架面试题

    JAVA SSM框架基础面试题https://blog.csdn.net/qq_39031310/article/details/83050192 SSM(Spring + Springmvc + M ...

  3. 用IntelliJ IDEA 开发Spring+SpringMVC+Mybatis框架 分步搭建四:配置springmvc

    在用IntelliJ IDEA 开发Spring+SpringMVC+Mybatis框架 分步搭建三:配置spring并测试的基础上 继续进行springmvc的配置 一:配置完善web.xml文件

  4. 用IntelliJ IDEA 开发Spring+SpringMVC+Mybatis框架 分步搭建二:配置MyBatis 并测试(1 构建目录环境和依赖)

    引言:在用IntelliJ IDEA 开发Spring+SpringMVC+Mybatis框架 分步搭建一   的基础上 继续进行项目搭建 该部分的主要目的是测通MyBatis 及Spring-dao ...

  5. 用IntelliJ IDEA 开发Spring+SpringMVC+Mybatis框架 分步搭建一:建立MAVEN Web项目

    一:创建maven web项目er

  6. SSH(Spring SpringMVC Hibernate)框架整合

    项目说明: 使用SSH(Spring SpringMVC Hibernate)框架整合添加部门功能 项目结构   1.导入依赖jar包 <!--单测--> <dependency&g ...

  7. SSM(Spring +SpringMVC + Mybatis)框架搭建

    SSM(Spring +SpringMVC + Mybatis)框架的搭建 最近通过学习别人博客发表的SSM搭建Demo,尝试去搭建一个简单的SSMDemo---实现的功能是对用户增删改查的操作 参考 ...

  8. SSM(Spring+SpringMVC+Mybatis)框架环境搭建(整合步骤)(一)

    1. 前言 最近在写毕设过程中,重新梳理了一遍SSM框架,特此记录一下. 附上源码:https://gitee.com/niceyoo/jeenotes-ssm 2. 概述 在写代码之前我们先了解一下 ...

  9. SSM:spring+springmvc+mybatis框架中的XML配置文件功能详细解释(转)

    原文:https://blog.csdn.net/yijiemamin/article/details/51156189# 这几天一直在整合SSM框架,虽然网上有很多已经整合好的,但是对于里面的配置文 ...

随机推荐

  1. 为什么要使用netty

    选择Netty的理由在开始本节之前,我先讲一个亲身经历的故事:曾经有两个项目组同时用到了NIO编程技术,一个项目组选择自己开发NIO服务端,直接使用JDK原生的API,结果2个多月过去了,他们的NIO ...

  2. React-如何在jsx中自动补全标签(vscode)

    痛点:  React库最近的增长趋势很明显, 很多朋友都在选择学习, 很多公司也在选择使用React栈. 但在使用React库写代码的时候, 有一个很让人苦恼的问题, 就是标签在jsx语法中不能自动补 ...

  3. Linux X86-64 进程内存空间布局

    http://blog.csdn.net/woshinia/article/details/41722085 http://www.lenky.info/archives/2012/04/1424 h ...

  4. DotNet和DotNet Core

    EF 1.0 ---EF6.0 都是code firstmodel ,model model first model,database first model, EF7 是DOTNET CORE重框版 ...

  5. Linux下SVN的三种备份方式

    原文链接:http://blog.csdn.net/windone0109/article/details/4040772 (本文例子基于FreeBSD/Linux实现,windows环境请自己做出相 ...

  6. log4net 自定义Appender

    最近有个需求,使用log4net来记录日志,然后将数据保存到服务器端.一开始打算写一个windows service,定期上传日志. 后来又因为一些场景下不适应,因此直接改为保存内存中,到一定阀值之后 ...

  7. iOS:CoreData数据库的使用二(创建多个数据库表,表之间有对应关系)

    CoreData数据库框架是一个封装性好,功能强大数据库,它底层使用的还是sqlite数据库,不过苹果公司在其基础上,为其封装新和安全性的维护上做了大量的处理,例如对一些事物做了详细的操作,如读脏数据 ...

  8. 数学图形(2.15)Spherical sinusoid球面正弦曲线

    这个曲线与之前的数学图形(2.7)sphere sine wave很相似.而且个人觉得从其公式上看sphere sine wave更应该叫做球面正弦曲线.当然从渲染的曲线图上看,它是非常明显的贴在球上 ...

  9. jquery之超简单的div显示和隐藏特效demo

    闲着无聊,看到某视频网站上讲的DIV显示和隐藏的效果,自己也写了一个. 觉得还是挺简单的. 前端改变世界!嘿嘿,还挺有成就感 <!DOCTYPE html PUBLIC "-//W3C ...

  10. c#中this的用法

    在C#中,this关键字代表当前实例,我们可以用this.来调用当前实例的成员方法,变量,属性,字段等; 也可以用this来做为参数状当前实例做为参数传入方法. 还可以通过this[]来声明索引器 下 ...