非 Spring Boot 项目中集成 Swagger:一步一步指南
2024-03-19 15:42:07
非 Spring Boot 项目中集成 Swagger:一步一步指南
简介
Swagger 是一个强大的工具,可帮助开发人员生成交互式的 RESTful API 文档。本文将指导你如何将 Swagger 集成到基于 Spring Framework 的非 Spring Boot 项目中。
先决条件
- Spring Framework 4.3 或更高版本
- Swagger 2.5.0 或更高版本
步骤
1. 添加 Swagger 依赖项
在项目的 pom.xml 文件中添加以下依赖项:
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.5.0</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.5.0</version>
</dependency>
2. 配置资源处理程序
在 WebConfig
类中配置资源处理程序以公开 Swagger UI 和 WebJAR 资源:
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("swagger-ui.html").addResourceLocations("classpath:/META-INF/resources/");
registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
}
3. 配置 Swagger
创建 SwaggerConfig
类来配置 Swagger:
@Configuration
@EnableSwagger2
public class SwaggerConfig {
@Bean
public Docket api() {
return new Docket(DocumentationType.SWAGGER_2)
.select()
.apis(RequestHandlerSelectors.any())
.paths(PathSelectors.any())
.build();
}
}
4. 配置 web.xml
在 web.xml
中添加以下配置:
<servlet-mapping>
<servlet-name>swagger-api</servlet-name>
<url-pattern>/swagger-api/*</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>swagger-api</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/swagger-servlet-context.xml</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet>
5. 配置 swagger-servlet-context.xml
创建 swagger-servlet-context.xml
文件:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.3.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-4.3.xsd">
<context:component-scan base-package="com.example.controller" />
<mvc:annotation-driven />
</beans>
运行应用程序
完成配置后,运行应用程序并导航到以下 URL:
- http://localhost:8080/swagger-ui.html
常见问题解答
1. 404 错误:
确保 swagger-ui.html
和 WebJAR 资源位于正确的位置。
2. 文档为空:
检查你是否正确扫描了包含 API 控制器类 的包。
3. 无法访问文档:
检查 web.xml
配置是否正确,并且 swagger-api
servlet 已启动。
4. 使用 WebConfig 配置资源处理程序:
WebConfig
类用于配置 Spring Web 应用程序的资源处理程序。在此上下文中,它用于公开 Swagger UI 和 WebJAR 资源。
5. Docket API 配置:
Docket
类用于配置 Swagger API。它定义了哪些 API 路径和控制器方法应纳入文档。
结论
通过遵循本文中的步骤,你可以将 Swagger 集成到非 Spring Boot 项目中,轻松生成交互式的 RESTful API 文档。