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

如何在无Spring Boot的Spring 4.0.0.RELEASE项目中集成Swagger UI?

Spring 4.0.0.RELEASE 集成 Swagger UI 步骤

适配Spring 4.0.x的Swagger版本是Swagger 1.3.x,以下是具体集成步骤:

1. 引入依赖(Maven)

在pom.xml中添加Swagger核心和UI的依赖:

<dependencies>
    <!-- Swagger Core -->
    <dependency>
        <groupId>com.wordnik</groupId>
        <artifactId>swagger-core</artifactId>
        <version>1.3.12</version>
    </dependency>
    <!-- Swagger SpringMVC -->
    <dependency>
        <groupId>com.wordnik</groupId>
        <artifactId>swagger-springmvc</artifactId>
        <version>1.0.2</version>
    </dependency>
    <!-- Swagger UI -->
    <dependency>
        <groupId>com.wordnik</groupId>
        <artifactId>swagger-ui</artifactId>
        <version>1.3.12</version>
        <type>war</type>
    </dependency>
</dependencies>

2. 配置Swagger核心

创建Java配置类(或XML配置),开启Swagger并配置API信息:

import com.wordnik.swagger.config.ConfigFactory;
import com.wordnik.swagger.config.ScannerFactory;
import com.wordnik.swagger.config.SwaggerConfig;
import com.wordnik.swagger.jaxrs.config.DefaultJaxrsScanner;
import com.wordnik.swagger.jaxrs.listing.ApiDeclarationProvider;
import com.wordnik.swagger.jaxrs.listing.ResourceListingProvider;
import com.wordnik.swagger.model.ApiInfo;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class SwaggerConfig {
    @Bean
    public ResourceListingProvider resourceListingProvider() {
        return new ResourceListingProvider();
    }

    @Bean
    public ApiDeclarationProvider apiDeclarationProvider() {
        return new ApiDeclarationProvider();
    }

    @Bean
    public void initSwagger() {
        ConfigFactory.setConfig(new SwaggerConfig() {
            @Override
            public ApiInfo apiInfo() {
                return new ApiInfo(
                    "项目API文档",
                    "Spring 4.0.x集成Swagger的API接口说明",
                    "项目服务条款地址",
                    "contact@your-domain.com",
                    "MIT License",
                    "项目许可证地址"
                );
            }

            @Override
            public String basePath() {
                return "/your-app-context"; // 替换为你的项目上下文路径
            }
        });

        ScannerFactory.setScanner(new DefaultJaxrsScanner());
    }
}

如果用XML配置,在spring-servlet.xml中添加:

<bean class="com.wordnik.swagger.jaxrs.listing.ResourceListingProvider"/>
<bean class="com.wordnik.swagger.jaxrs.listing.ApiDeclarationProvider"/>

<bean id="swaggerConfig" class="com.wordnik.swagger.config.SwaggerConfig">
    <property name="apiInfo">
        <bean class="com.wordnik.swagger.model.ApiInfo">
            <constructor-arg value="项目API文档"/>
            <constructor-arg value="API接口说明"/>
            <constructor-arg value="项目服务条款地址"/>
            <constructor-arg value="contact@your-domain.com"/>
            <constructor-arg value="MIT License"/>
            <constructor-arg value="项目许可证地址"/>
        </bean>
    </property>
    <property name="basePath" value="/your-app-context"/>
</bean>

<bean class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
    <property name="targetClass" value="com.wordnik.swagger.config.ConfigFactory"/>
    <property name="targetMethod" value="setConfig"/>
    <property name="arguments" ref="swaggerConfig"/>
</bean>

<bean class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
    <property name="targetClass" value="com.wordnik.swagger.config.ScannerFactory"/>
    <property name="targetMethod" value="setScanner"/>
    <property name="arguments">
        <bean class="com.wordnik.swagger.jaxrs.config.DefaultJaxrsScanner"/>
    </property>
</bean>

3. 配置Swagger UI静态资源

非Spring Boot项目需配置静态资源映射,让Swagger UI文件可访问:

  • Java配置方式:
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;

@Configuration
public class WebMvcConfig extends WebMvcConfigurerAdapter {
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/swagger-ui/**")
                .addResourceLocations("classpath:/META-INF/resources/webjars/swagger-ui/1.3.12/");
    }
}
  • XML配置方式:
<mvc:resources mapping="/swagger-ui/**" location="classpath:/META-INF/resources/webjars/swagger-ui/1.3.12/"/>

4. 给Controller添加Swagger注解

为需要生成文档的接口添加注解:

import com.wordnik.swagger.annotations.Api;
import com.wordnik.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@Api(value = "示例接口", description = "测试用API接口")
@RestController
public class SampleController {

    @ApiOperation(value = "获取Hello信息", notes = "返回简单的Hello字符串")
    @GetMapping("/hello")
    public String hello() {
        return "Hello Swagger!";
    }
}

5. 验证访问

启动项目后,访问地址:http://localhost:8080/your-app-context/swagger-ui/index.html,即可查看生成的API文档。

注意事项

  • 确保项目已开启Spring MVC注解驱动(<mvc:annotation-driven/>或@EnableWebMvc)
  • 若有拦截器,需排除Swagger相关路径:/swagger-ui/**、/api-docs/**
  • 遇到依赖冲突时,可通过dependencyManagement锁定Swagger相关依赖版本

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 23:11:11