springMVC4集成swagger2

本文介绍了如何将Swagger2集成到SpringMVC4项目中,以生成RESTful API的文档。首先,添加Swagger的相关依赖,然后创建Swagger配置类,设置扫描的控制器包。接着配置web.xml和SpringMVC配置文件,确保DispatcherServlet正确处理静态资源。最后,编写Controller类并访问swagger-ui.html查看生成的API文档。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本帖子使用的组件版本:
Spring 4.2.1.RELEASE
Swagger 2.4.0

1.Swagger介绍:
Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。总体目标是使客户端和文件系统作为服务器以同样的速度来更新。文件的方法,参数和模型紧密集成到服务器端的代码,允许API来始终保持同步。
===============================================================================================================================================
2.Swagger如何集成到SpringMVC中:
1)添加maven依赖
  <!-- swagger -->
  <dependency>
   <groupId>io.springfox</groupId>
   <artifactId>springfox-swagger2</artifactId>
   <version>2.4.0</version>
  </dependency>
  <dependency>
   <groupId>io.springfox</groupId>
   <artifactId>springfox-swagger-ui</artifactId>
   <version>2.4.0</version>
  </dependency>

--springfox-swagger2为Swagger的核心依赖;springfox-swagger-ui为Swagger的UI包,支持通过浏览器(chrome)查看API信息。
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2)增加Swagger配置类
@Configuration
@EnableSwagger2
public class RestApiConfig extends WebMvcConfigurationSupport {

    @Bean
    public Docket createRestApi1() {

        return new Docket(DocumentationType.SWAGGER_2).groupName("tem1").apiInfo(buildApiInf()).select()
                .apis(RequestHandlerSelectors.basePackage("com.thunisoft.springmvc.business.api.tem1"))//controller路径
                .paths(PathSelectors.any()).build();
    }

    @Bean
    public Docket createRestApi2() {

        return new Docket(DocumentationType.SWAGGER_2).groupName("tem2").apiInfo(buildApiInf()).select()
                .apis(RequestHandlerSelectors.basePackage("com.thunisoft.springmvc.business.api.tem2"))//controller路径
                .paths(PathSelectors.any()).build();
    }

    private ApiInfo buildApiInf() {
        return new ApiInfoBuilder().title("API").termsOfServiceUrl("
www.xxxx.com ")
                .description("springmvc swagger2").build();
    }
}

--这段代码中需要注意的一个地方是groupName,这个相当于分组命名,basePackage为需要扫描的包,每个groupName对应一个basePackage。
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3)配置web.xml文件
<servlet>
  <servlet-name>dispatcherServlet</servlet-name>
  <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  <init-param>
   <param-name>contextConfigLocation</param-name>
   <param-value>classpath:/spring/mvc/mvcContext.xml</param-value>
  </init-param>
  <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
  <servlet-name>dispatcherServlet</servlet-name>
  <url-pattern>/</url-pattern>
</servlet-mapping>

--注意配置DispatcherServlet的url-pattern为  /  
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4)配置SpringMVC-Context.xml文件:
添加一行配置:<mvc:default-servlet-handler />
--在springMVC-servlet.xml中配置<mvc:default-servlet-handler />后,会在Spring MVC上下文中定义一个org.springframework.web.servlet.resource.DefaultServletHttpRequestHandler,它会像一个检查员,对进入DispatcherServlet的URL进行筛查,如果发现是静态资源的请求,就将该请求转由Web应用服务器默认的Servlet处理,如果不是静态资源的请求,才由DispatcherServlet继续处理。
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
5)编写API的Controller类:
在2)步中指定的com.thunisoft.springmvc.business.api.tem1和com.thunisoft.springmvc.business.api.tem2包下面添加所需要的controller类,举例:
@Controller
@RequestMapping(value = "/api1")
public class ApiController1 {

    @ApiOperation(value = "获取用户信息", notes = "根据url的id来获取用户详细信息")
    @ApiImplicitParam(name = "userId", value = "用户ID", required = true, dataType = "User")
    @RequestMapping(value = "/getUser.html", method = RequestMethod.GET)
    @ResponseBody
    public User getUser(@RequestParam(value = "userId") Integer userId) {
        User u = new User();
        u.setcId("1111");
        u.setcName("test");
        return u;
    }
}

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
6)访问http://{IP}:{端口}/{应用名称}/swagger-ui.html查看API文档:




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值