为什么在我的Spring启动MVC上展示了jersey

时间:2016-04-22 14:57:19

标签: spring spring-mvc tomcat spring-boot jersey

我的服务器运行在tomcat 8上,我使用没有任何Jersey组件的Spring Boot框架,但仍然出于某种原因,我在启动服务器时得到了这个日志数据:

信息:在类路径上检测到Spring WebApplicationInitializers:[org.springframework.boot.autoconfigure.jersey.JerseyAutoConfiguration$JerseyWebApplicationInitializer@310ddd95,com.server.ServletInitializer @ 43b26169]

注意:我的服务器运行得很好,但我没有使用任何泽西岛,所以为什么我会收到这个信息?

这是我的主要配置类:

@ImportResource({"classpath:/META-INF/application-context.xml"})
@SpringBootApplication
@EnableAspectJAutoProxy
@EnableScheduling
public class DemoApplication {...}

这是另一个conf类:

@Configuration
@AutoConfigureAfter(DispatcherServletAutoConfiguration.class)
public class CustomWebMvcAutoConfig extends WebMvcAutoConfiguration.WebMvcAutoConfigurationAdapter {...}

另一个conf类:

@Configuration
@EnableWebSecurity
public class SecurityConfiguration {}

还有一个(我觉得这是个大问题)

public class ServletInitializer extends SpringBootServletInitializer {

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
        return application.sources(DemoApplication.class);
    }

}

1 个答案:

答案 0 :(得分:3)

org.springframework.boot.autoconfigure.jersey.JerseyAutoConfiguration是Spring Boot的一部分,包含Jersey的自动配置(仅当Jersey位于类路径时才会激活)。但是,它还包含一个实现接口WebApplicationInitializer的内部类,并且由于Spring检测到该接口的所有实现,因此您将获得此日志消息(如您​​所见,这只出现在所有实现的列表中,还包含WebApplicationInitializer接口的实现。

然而,也许这是一个错误,因为在我看来,如果周围的自动配置不活动,它不应该检测WebApplicationInitializer。在这种情况下,您应该在Spring Boot的Github项目中打开一个错误报告(https://github.com/spring-projects/spring-boot/issues)。