在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框架,虽然网上有很多已经整合好的,但是对于里面的配置文 ...
随机推荐
- flex弹性盒子
注意事项 1.设为Flex布局之后,子元素的float,clear和vertical-align属性都讲失效 2.采用Flex布局的元素,称为Flex容器(Flex container),所有的子元素 ...
- POJ 1222 POJ 1830 POJ 1681 POJ 1753 POJ 3185 高斯消元求解一类开关问题
http://poj.org/problem?id=1222 http://poj.org/problem?id=1830 http://poj.org/problem?id=1681 http:// ...
- php中的var_dump()方法的详细说明
首先看看实例: <?PHP$a = "alsdflasdf;a";$b = var_dump($a);echo "<br>";//var_du ...
- RHEL内核源码编译
http://blog.csdn.net/lishenglong666/article/details/7320864 http://ftp.redhat.com/pub/redhat/linux/e ...
- 原生JavaScript---正则表达式
JavaScript 中正则的性能比想象中的低很多.能用字符串方法搞定的,尽量别用正则.------玉伯 抛开性能不谈,一起来看看正则表达式怎么用吧! 先看看JavaScript正则表达式中一些特殊字 ...
- pytest文档10-命令行传参
前言 命令行参数是根据命令行选项将不同的值传递给测试函数,比如平常在cmd执行"pytest --html=report.html",这里面的"--html=report ...
- booksleeve 使用
By offering pipelined, asynchronous, multiplexed and thread-safe access to redis, BookSleeve enables ...
- 从两个TIMESTAMP中获取时间差(秒)
When you subtract two variables of type TIMESTAMP, you get an INTERVAL DAY TO SECOND which includes ...
- JavaScript的学习要点
概要 了解Javascript历史以及Javascript三个不同组成部分: ECMAScript DOM(文档对象模型) BOM(浏览器对象模型) ECMAScript 目标 掌握Javascrip ...
- 如何移植openwrt系统
Cisco/Linksys在2003年发布了WRT54G这款无线路由器,同年有人发现它的IOS是基于Linux的,然而Linux是基于GPL许可证发布的,按照该许可证Cisco应该把WRT54G的IO ...