You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无法在Spring MVC项目中集成Swagger-UI的问题求助

Spring Web MVC集成Swagger-UI实操方案

一、依赖配置(Maven)

确保pom.xml中引入兼容的Swagger依赖(以Spring MVC 4.x为例):

<dependencies>
    <!-- Swagger Spring MVC集成包 -->
    <dependency>
        <groupId>com.mangofactory</groupId>
        <artifactId>swagger-springmvc</artifactId>
        <version>1.0.2</version>
    </dependency>
    <!-- Swagger核心包 -->
    <dependency>
        <groupId>com.wordnik</groupId>
        <artifactId>swagger-core</artifactId>
        <version>1.3.12</version>
    </dependency>
</dependencies>

二、Swagger配置类

创建配置类开启Swagger并定义API文档基本信息:

@Configuration
@EnableSwagger
public class SwaggerConfig {
    private SpringSwaggerConfig springSwaggerConfig;

    @Autowired
    public void setSpringSwaggerConfig(SpringSwaggerConfig springSwaggerConfig) {
        this.springSwaggerConfig = springSwaggerConfig;
    }

    @Bean
    public SwaggerSpringMvcPlugin customSwaggerPlugin() {
        return new SwaggerSpringMvcPlugin(this.springSwaggerConfig)
                .apiInfo(buildApiInfo())
                .includePatterns(".*"); // 匹配所有Controller请求路径,可按需调整
    }

    private ApiInfo buildApiInfo() {
        return new ApiInfo(
                "项目API文档",
                "Spring MVC接口的详细说明",
                "https://your-terms-url.com",
                "your-email@domain.com",
                "MIT License",
                "https://license-url.com"
        );
    }
}

三、Spring MVC静态资源映射

配置Swagger-UI静态资源访问路径,避免页面加载失败:

XML配置方式

在Spring MVC配置文件中添加:

<mvc:resources mapping="/swagger/**" location="classpath:/META-INF/resources/swagger-ui/"/>

Java配置方式

若使用Java配置类继承WebMvcConfigurerAdapter(Spring 4.x)或WebMvcConfigurer(Spring 5+):

@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
    registry.addResourceHandler("/swagger/**")
            .addResourceLocations("classpath:/META-INF/resources/swagger-ui/");
}

四、Controller添加Swagger注解

给接口添加注解生成结构化文档:

@Api(value = "用户管理接口", description = "提供用户增删改查操作")
@Controller
@RequestMapping("/user")
public class UserController {

    @ApiOperation(value = "获取用户列表", notes = "返回系统中所有用户的基本信息")
    @RequestMapping(value = "/list", method = RequestMethod.GET)
    @ResponseBody
    public List<User> getUserList() {
        // 业务逻辑实现
        return new ArrayList<>();
    }

    @ApiOperation(value = "新增用户", notes = "传入用户信息完成新增")
    @RequestMapping(value = "/add", method = RequestMethod.POST)
    @ResponseBody
    public boolean addUser(@RequestBody User user) {
        // 业务逻辑实现
        return true;
    }
}

五、访问Swagger-UI

启动项目后,访问以下地址查看文档:

http://localhost:8080/你的项目上下文路径/swagger/index.html

常见问题排查

  • 依赖版本冲突:确保swagger-springmvc与swagger-core、Spring MVC版本兼容,建议使用上述示例版本
  • 静态资源无法访问:检查资源映射配置是否正确,若有拦截器需排除/swagger/**路径
  • 接口未显示:确认includePatterns规则匹配到Controller路径,且Controller方法添加了Swagger注解

内容的提问来源于stack exchange,提问作者Upendra Kumar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 11:55:26