关于使用swagger整合springMVC的方法

 更新时间:2023年04月26日 09:48:51   作者:wangjun5159  
在平时开发写接口文档的工作时,一般都是word文档,带来书写麻烦、维护麻烦的问题,比如改了源代码忘了更新文档、解释不明确带来歧义、无法在线尝试等等,swagger可以有效解决这类问题,需要的朋友可以参考下

前文:

在日常工作中,开发人员经常会遇到写接口文档的工作,一般都是word文档,带来书写麻烦、维护麻烦的问题,比如改了源代码忘了更新文档、解释不明确带来歧义、无法在线尝试等等。swagger就是为了解决这些问题而产生的。这是官方的例子,截图如下

swagger原理

后台:后端部分与java集成,后最终会产生一个json文件。

前台:前台部分就是html、css、js文件,js利用后台产生的json文件构造api;

前台配置:

https://github.com/swagger-api/swagger-ui 下载zip包,解压后,将dist文件夹下的所有内容copy到,java web project的webapp下,比如,

maven依赖:

<repositories>
    <repository>
      <id>jcenter-release</id>
      <name>jcenter</name>
      <url>http://oss.jfrog.org/artifactory/oss-release-local/</url>
    </repository>
</repositories>
 
<dependency>
    <groupId>com.mangofactory</groupId>
    <artifactId>swagger-springmvc</artifactId>
    <version>1.0.1</version>
</dependency>

后台配置:

途径一:

在spring的applicationcontext.xml文件中,添加配置

 <mvc:annotation-driven/>
    <bean class="com.mangofactory.swagger.configuration.SpringSwaggerConfig" />
    <!-- 对包中的所有类进行扫描,以完成Bean创建和自动依赖注入的功能 稍后会创建该包:webmvct.cmd -->    
	<context:component-scan base-package="webmvct.cmd"/>

解释:swagger会扫描 base-package包下的所有类,生成api文档

将docapi文件下的index.html文件,url改为本工程的路径,如下图,

截止到现在,最简单的swagger配置已经完成。访问 //localhost:8080/hi/docapi/index.html 就可以看到效果。

途径二:

如果想进一步的定制,比如只扫描某个包下的某些路径,那么就需要用到定制类,途径二是基于途径一在功能上的扩展,所以要想达到定制效果首先将途径一配置好。

创建swaggerspringconfig定制类,比如

@Configuration
@EnableSwagger //Loads the spring beans required by the framework
@ComponentScan("com.test")
public class MySwaggerConfig {
	private SpringSwaggerConfig springSwaggerConfig;
 
	   /**
	    * Required to autowire SpringSwaggerConfig
	    */
	   @Autowired
	   public void setSpringSwaggerConfig(SpringSwaggerConfig springSwaggerConfig) {
	      this.springSwaggerConfig = springSwaggerConfig;
	   }
 
	   /**
	    * Every SwaggerSpringMvcPlugin bean is picked up by the swagger-mvc framework - allowing for multiple
	    * swagger groups i.e. same code base multiple swagger resource listings.
	    */
	   @Bean
	   public SwaggerSpringMvcPlugin customImplementation(){
	      return new SwaggerSpringMvcPlugin(this.springSwaggerConfig)
	      .includePatterns(".*store.*");
	      
	   }
 
}

@componentscan,将com.test包下的类也包含在内进行扫描;

customImplementation方法的includePatterns可以进行过滤,只include含有store的路径

controller类的样例:

@Api(value="/store",description="商店")
@Controller
@RequestMapping("/store")
public class StoreController {
	
	
	@RequestMapping(value = "/{storeid}",method=RequestMethod.GET)
	@ResponseBody
	@ApiOperation(value="获取商店信息",notes="通过商店id获取商店信息")
	public Store getStore(String storeid){
		return new Store();
	}
	
	@ApiOperation(value="获取商店信息",notes="通过商店name获取商店信息")
	@ResponseBody
	@RequestMapping(value = "/{storename}",method=RequestMethod.POST)
	public Store getStore2(String storeid){
		return new Store();
	}
}

@api,用在类上,用于解释整个类。

@apioperation,用于方法上,value是笼统的介绍方法作用,notes是详细的说明方法作用

最终效果图:

以上配置参考:

swagger整合spring mvc的doc点击打开链接

swagger注解说明 点击打开链接

到此这篇关于关于使用swagger整合springMVC的方法的文章就介绍到这了,更多相关swagger整合springMVC内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 图解Java经典算法希尔排序的原理与实现

    图解Java经典算法希尔排序的原理与实现

    希尔排序是希尔(Donald Shell)于1959年提出的一种排序算法。希尔排序也是一种插入排序,它是简单插入排序经过改进之后的一个更高效的版本,也称为缩小增量排序,同时该算法是冲破O(n2)的第一批算法之一。本文会以图解的方式详细介绍希尔排序的基本思想及其代码实现
    2022-09-09
  • 自己写的java日志类和方法代码分享

    自己写的java日志类和方法代码分享

    这篇文章主要介绍了一个自己写的java日志类和方法,下面把代码分享给大家
    2014-01-01
  • 你知道Spring中为何不建议使用字段注入吗

    你知道Spring中为何不建议使用字段注入吗

    这篇文章主要给大家介绍了关于Spring中为何不建议使用字段注入的相关资料,通过本文你将对Spring的引入方式有更一步的了解,需要的朋友可以参考下
    2021-08-08
  • IDEA2020.1个性化设置的实现

    IDEA2020.1个性化设置的实现

    这篇文章主要介绍了IDEA2020.1个性化设置的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-08-08
  • Java基础学习之方法的重载知识总结

    Java基础学习之方法的重载知识总结

    今天带大家来回顾Java基础知识,文中对Java方法的重载相关知识作了非常详细的介绍,对正在学习java的小伙伴们有很好的帮助,需要的朋友可以参考下
    2021-05-05
  • Java编程中的vector类用法学习笔记

    Java编程中的vector类用法学习笔记

    Vector通常被用来实现动态数组,即可实现自动增长的对象数组,和C++一样vector类同样被Java内置,下面就来看一下vector类的基本用法.
    2016-05-05
  • Java日常练习题,每天进步一点点(2)

    Java日常练习题,每天进步一点点(2)

    下面小编就为大家带来一篇Java基础的几道练习题(分享)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧,希望可以帮到你
    2021-07-07
  • JDK14之jpackage打包命令的使用

    JDK14之jpackage打包命令的使用

    这篇文章主要介绍了JDK14之jpackage打包命令的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-05-05
  • 一篇文章带你搞定SpringBoot不重启项目实现修改静态资源

    一篇文章带你搞定SpringBoot不重启项目实现修改静态资源

    这篇文章主要介绍了一篇文章带你搞定SpringBoot不重启项目实现修改静态资源,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09
  • SpringBoot创建多模块项目的全过程记录

    SpringBoot创建多模块项目的全过程记录

    这篇文章主要给大家介绍了关于SpringBoot创建多模块项目的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-01-01

最新评论