如何在Spring启动时添加一个tomcat服务器LifeCycleListener

时间:2016-12-22 06:39:58

标签: spring tomcat spring-boot listener

我们正在尝试在Spring启动应用程序中添加一个自己的侦听器,如:

<Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"&GT;

我们如何在Spring启动应用程序中添加它?

2 个答案:

答案 0 :(得分:2)

只需将此配置类添加到您的项目中:

import org.springframework.boot.context.embedded.ConfigurableEmbeddedServletContainer;
import org.springframework.boot.context.embedded.EmbeddedServletContainerCustomizer;
import org.springframework.boot.context.embedded.EmbeddedServletContainerFactory;
import org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * Created by jacks808@163.com on 16/10/28.
 */
@Configuration
public class TomcatConfig implements EmbeddedServletContainerCustomizer {
    @Override
    public void customize(ConfigurableEmbeddedServletContainer container) {
    }

    @Bean
    public EmbeddedServletContainerFactory servletContainerFactory() {
        TomcatEmbeddedServletContainerFactory factory = new TomcatEmbeddedServletContainerFactory();
        factory.addContextLifecycleListeners(null);
        return factory;
    }
}

此处有更多细节:Actor Model

答案 1 :(得分:0)

在最新版本的spring boot中,实现已更改。

@Component
public class MyTomcatWebServerCustomizer
        implements WebServerFactoryCustomizer<TomcatServletWebServerFactory> {

    @Override
    public void customize(TomcatServletWebServerFactory factory) {
        // customize the factory here
    }
}

The spring boot documentation