java - Spring Boot AuthenticationFilterConfiguration.onStartup 未调用

标签 java spring spring-boot

我有以下配置类:

@Configuration
public class AuthenticationFilterConfiguration extends SpringBootServletInitializer {

    private static final Logger LOGGER = LoggerFactory.getLogger(AuthenticationFilterConfiguration.class);

    public AuthenticationFilterConfiguration(){
        LOGGER.info("Setting up authentication filter");
    }

    @Override
    public void onStartup(ServletContext context) throws ServletException {
        super.onStartup(context);
        LOGGER.info("Authentication filter configured");
    }

}

这与主应用程序位于同一包中:

@SpringBootApplication
public class MainApplication {
    public static void main(String[] args) {
        SpringApplication.run(MainApplication.class, args);
    }
}

在我的日志中 - 我看到:

2018-04-10 AuthenticationFilterConfiguration : Setting up authentication filter

但是,我从未看到来自 onStartup(...) 的日志消息方法说 Authentication filter configured 。我的另一个@Configuration正在加载类(它们创建了很多 @Bean )

为什么onStartup方法没有被调用?其他一切都正常,我的 RESTful 端点正在工作,等等......

最佳答案

结果我需要实现 ServletContextInitializer 而不是 Spring Boot 类。这工作得很好:

@Configuration
public class AuthenticationFilterConfiguration implements ServletContextInitializer {

    private static final Logger LOGGER = LoggerFactory.getLogger(AuthenticationFilterConfiguration.class);

    public AuthenticationFilterConfiguration(){
        LOGGER.info("Setting up authentication filter");
    }

    @Override
    public void onStartup(ServletContext context) throws ServletException {
        LOGGER.info("Authentication filter configured");
    }

}

关于java - Spring Boot AuthenticationFilterConfiguration.onStartup 未调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49757130/

相关文章:

java - 具有不同查询参数类型的 Spring REST 端点

java - 使用 Oracle 的 Spring Boot 2.0 分页不起作用

java - 如何从日期选择器中获取字符串形式的值,即使它不是日期格式(JavaFX)?

java - 是否可以在我的网站上使用其他网站的搜索结果?

javascript - Spring 3 - 通过 JSP View 解析器包含 javascript?

java - 如何使用反射在运行时更改注释值?

spring-boot - Thymeleaf 下载登录空白文件,而不是导航到 login.html (Springboot)

spring - Thymeleaf 注册页面 - 执行处理器 'org.thymeleaf.spring4.processor.attr.SpringInputGeneralFieldAttrProcessor' 期间出错

java - 滚动 JPanel 清除其图形

java - 访问构造的注释参数进行修改