我是在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. @ResponseBody,@RequestBody,@PathVariable

    最近需要做些接口服务,服务协议定为JSON,为了整合在Spring中,一开始确实费了很大的劲,经朋友提醒才发现,SpringMVC已经强悍到如此地步,佩服! 相关参考: Spring 注解学习手札(一 ...

  2. MariaDB Audit Plugin 1.2

    下载地址:https://downloads.mariadb.com/enterprise/bbfz-atd2/mariadb-audit-plugin/server_audit-1.2.0.tar. ...

  3. WinForm中DataGridView验证单元格输入的是数字

    转载:http://www.cnblogs.com/ganqiyin/archive/2013/02/18/2915491.html 事件:DataGridView验证单元格输入的是数字,DataGr ...

  4. 自定义ListView adapter适配器

    转自:http://hilary3113.iteye.com/blog/998352 listview加载adapter过程是这样的. 1 先判断adapter 有多少数据项,根据这个数据确定有多少i ...

  5. js 的push方法

    JavaScript push() 方法 定义和用法 push() 方法可向数组的末尾添加一个或多个元素,并返回新的长度. 语法 arrayObject.push(newelement1,newele ...

  6. idea的一些快捷键

    查找文本的出现位置就用Ctrl+F/Ctrl+Shift+F在当前窗口或全工程中查找,再配合F3/Shift+F3前后移动到下一匹配处Intellij的Ctrl+N/Ctrl+Shift+N可以打开类 ...

  7. C++中 使用数组作为map容器VAlue值的解决方法

    1)是用Vector容器代替数组 2)使用数组指针(需要注意局部变量的问题,指针是否需要用new创建) int red [ 3 ]   = { 1 , 0 , 0 }; int green [ 3 ] ...

  8. 【itercast OSI 七层网络模型 学习笔记】Layer 1 物理层

    NIC:网卡(基本上是一层功能) 传输介质:以太网,分有线和无线 开始以太网只有10Mbps的吞吐量,使用的是带有冲突检测的载波侦听多路访问(CSMA/CD,Carrier Sense Multipl ...

  9. HTML-获取/修改html页面标题

    作为一个标准的HTML文档,网页标题(title)是必不可少的属性.随着浏览器的发展,我们又多了一种访问和修改文档的方式:DOM.所以我们获取网页标题的方式大致可分为以下两种: 通过document对 ...

  10. RUP(Rational Unified Process),统一软件开发过程

    RUP(Rational Unified Process),统一软件开发过程 https://baike.baidu.com/item/RUP/8924595?fr=aladdin RUP最重要的它有 ...