当前位置: 首页 > 知识库问答 >
问题:

在Spring MVC应用程序中实现Swagger的“简单”方法

夏立果
2023-03-14

有没有人有一个样例项目(或者一组详细的步骤)可以帮助我完成这件事?特别是,我正在寻找一个使用swagger-springMVC的好样例。我知道它有“示例”,但最多,深奥的代码是令人气馁的。

我必须澄清,我不是在寻找“为什么大摇大摆的简直就是最好的”。我没有使用(并且对于我当前的任务将不会使用)Spring引导或这样的。

共有1个答案

孔阳炎
2023-03-14

Springfox已经取代了Swagger-SpringMVC,现在同时支持Swagger规范1.2和2.0。实现类发生了变化,允许进行一些更深入的定制,但需要进行一些工作。文档已有所改进,但仍需要添加一些详细信息以进行高级配置。关于1.2实现的旧答案仍然可以在下面找到。

Maven依赖项

<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger2</artifactId>
    <version>2.5.0</version>
</dependency> 

裸最小实现看起来或多或少是一样的,但现在使用的是docket类,而不是swaggerspringMVCPlugin类:

@Configuration
@EnableSwagger2
public class SwaggerConfig {

    @Bean
    public Docket api(){
        return new Docket(DocumentationType.SWAGGER_2)
            .select()
            .apis(RequestHandlerSelectors.any())
            .paths(PathSelectors.regex("/api/.*"))
            .build()
            .apiInfo(apiInfo());
    }

    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
            .title("TITLE")
            .description("DESCRIPTION")
            .version("VERSION")
            .termsOfServiceUrl("http://terms-of-services.url")
            .license("LICENSE")
            .licenseUrl("http://url-to-license.com")
            .build();
    }

}
<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger-ui</artifactId>
    <version>2.5.0</version>
</dependency>
@Configuration
@EnableWebMvc
public class WebAppConfig extends WebMvcConfigurerAdapter {

    @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/");
    }

}

Swagger-SpringMVC的文档可能有点混乱,但实际上它非常容易设置。最简单的配置需要创建springswagerconfigbean并启用基于注释的配置(您可能已经在Spring MVC项目中这样做了):

<mvc:annotation-driven/>
<bean class="com.mangofactory.swagger.configuration.SpringSwaggerConfig" />

但是,我认为非常值得采取额外的步骤,使用swaggerspringMVCPlugin来定义一个自定义的Swagger配置,而不是前面的XML定义的bean:

@Configuration
@EnableSwagger
@EnableWebMvc
public class SwaggerConfig {

    private SpringSwaggerConfig springSwaggerConfig;

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

    @Bean
    public SwaggerSpringMvcPlugin customImplementation(){

        return new SwaggerSpringMvcPlugin(this.springSwaggerConfig)
                .apiInfo(apiInfo())
                .includePatterns(".*api.*"); // assuming the API lives at something like http://myapp/api
    }

    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
            .title("TITLE")
            .description("DESCRIPTION")
            .version("VERSION")
            .termsOfServiceUrl("http://terms-of-services.url")
            .license("LICENSE")
            .licenseUrl("http://url-to-license.com")
            .build();
    }

}

运行应用程序时,现在应该看到在http://myapp/api-docs上创建的API规范。要设置fancy Swagger UI,您需要从GitHub项目中克隆静态文件并将其放入您的项目中。确保您的项目配置为提供静态HTML文件

<mvc:resources mapping="*.html" location="/" />
  if (url && url.length > 1) {
    url = url[1];
  } else {
    url = "http://myapp/api-docs";
  }
 类似资料:
  • 问题内容: 我有一个用简单的Spring编写的ReSTFul API(没有Spring Boot,没有花哨的东西!)。我需要在其中实现Swagger。到目前为止,Internet上的每个页面都以令人困惑的配置和膨胀的代码(使我根本无法移植) 有没有人有一个示例项目(或一组详细的步骤)可以帮助我实现这一目标?特别是,我正在寻找使用swagger-springmvc的良好示例。我知道它有“样本”,但是

  • 本文向大家介绍SpringMVC程序简单实例,包括了SpringMVC程序简单实例的使用技巧和注意事项,需要的朋友参考一下 StringMVC程序简单实例 第一步:导入jar包 第二步,在WEB-INF文件夹下创建spring-servlet.xml文件。  第三步:在web.xml文件配置springmvc。  第四步:创建一个控制器。    感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

  • 本文向大家介绍Java编程实现springMVC简单登录实例,包括了Java编程实现springMVC简单登录实例的使用技巧和注意事项,需要的朋友参考一下 Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC 架构,从而在使用Spri

  • 我试图在SpringMVC中运行SpringBoot应用程序,在SpringMVCPOM中添加SpringBoot应用程序依赖项,并扫描SpringBoot包,但我面临以下问题

  • 本文向大家介绍SpringMVC的简单传值(实现代码),包括了SpringMVC的简单传值(实现代码)的使用技巧和注意事项,需要的朋友参考一下 之前学习SpringMVC时感觉他的传值很神奇:简便,快捷,高效。 今天写几个简单的传值与大家分享,希望能对大家有帮助。 一、 从后往前传: (1) 把想要传递的东西放在addObject(String,Object)里,值是Object类型,什么都可以放

  • 本文向大家介绍springMVC发送邮件的简单实现,包括了springMVC发送邮件的简单实现的使用技巧和注意事项,需要的朋友参考一下 利用javax.mail发送邮件,图片与附件都可发送 1,Controller类 2,service类 MailModel实体类 spring.xml添加配置信息  dev.properties配置 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多