2016-12-22 11 views
0

をTomcatサーバーLifeCycleListenerを追加するために、我々のような春のブートアプリケーションで私たち自身のリスナーを追加しようとしている。どのように春ブーツで

<Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener">

私たちは春のブートアプリケーションでこれを追加するにはどうすればよいですか?

答えて

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 [email protected] 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; 
    } 
} 

そして、もっとここでは詳細:spring boot document

+0

我々は単にリスナーを初期化することによって、このソリューションを試してみましたが、addContextLifecycleListenersに渡し、それが動作していません。 lifecycleEvent(..)を明示的に呼び出す必要があります。 server.xmlではリスナーのエントリを追加するだけなので、リスナーを初期化する方法はありますか?この問題に対する解決策はありますか? –

+0

この行を使用して、Listenerのimplクラスを追加しましたか?factory.addContextLifecycleListeners( "Some Impl Class of Listener"); – BeeNoisy