没有 Spring Boot 的 Springfox swagger2 (Spring-web 4.3.22)

pas*_*ers 5 spring spring-mvc swagger swagger-2.0 springfox

我正在尝试将 Springfox Swagger 2 与非 SpringBoot Spring 应用程序(Spring-web MVC)一起使用,使用 Spring-web 4.3.22-RELEASE。但是,当我包含以下依赖项时

<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger2</artifactId>
    <version>2.9.2</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

在我的 pom.xml 中,如果没有添加任何代码来使用它或类似的内容,我的“maven install”就会开始失败。我看到的错误是。

Caused by: java.lang.NoClassDefFoundError: org/springframework/context/event/EventListenerFactory
Caused by: java.lang.ClassNotFoundException: org.springframework.context.event.EventListenerFactory
Run Code Online (Sandbox Code Playgroud)

我认为这是一个 Spring 5 类,我不知道如何让它与这个旧版本一起工作。我尝试过的事情:

  1. 也添加 org.webjars:bootstrap 作为依赖项
  2. 降低我正在使用的 springfox-swagger2 的版本,一直到 2.0.1。我也尝试更改为 swagger1 但没有成功

注意:我有在 Spring MVC 应用程序中实现 Swagger 的“简单”方法中提到的 Jackson Databind 依赖项

POM 的相关部分(很难发布整个 POM,因为我们有一个复杂的层次结构,对格式感到抱歉)

<properties>
    <jackson.databind.version>2.9.8</jackson.databind.version>
    <spring.version>4.3.22.RELEASE</spring.version>
</properties>

      <dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-web</artifactId>
  <version>${spring.version}</version>
  <exclusions>
    <exclusion>
      <artifactId>commons-logging</artifactId>
      <groupId>commons-logging</groupId>
    </exclusion>
  </exclusions>
</dependency>
<dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-webmvc</artifactId>
  <version>${spring.version}</version>
  <exclusions>
    <exclusion>
      <artifactId>commons-logging</artifactId>
      <groupId>commons-logging</groupId>
    </exclusion>
  </exclusions>
</dependency>
<dependency>
  <groupId>com.fasterxml.jackson.core</groupId>
  <artifactId>jackson-databind</artifactId>
  <version>${jackson.databind.version}</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)