1

Webアプリケーションの起動(コンテキストのロード)後にメソッド(または一部の機能)を実行したい。フレームワークとしてSpring3.0を使用しています。

クラスに実装したServletContextListenerを使ってみました

私のリスナークラス

package myapp.listner;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;

public class MyContextListner implements ServletContextListener{

    public static long appStart=0L;
    @Override
    public void contextDestroyed(ServletContextEvent arg0) {

        System.out.println("Context Destroyed");
    }

    @Override
    public void contextInitialized(ServletContextEvent arg0) {
        appStart=System.currentTimeMillis();
        System.out.println("Context Initialised");

    }

}

そしてweb.xmlの一部は

<listner>
     <listner-class>myapp.listner.MyContextListner</listner-class>
    </listner>

    <servlet>
      <servlet-name>dispatcher</servlet-name>

      <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
      <load-on-startup>1</load-on-startup>
    </servlet>


    <servlet-mapping>
      <servlet-name>dispatcher</servlet-name>
      <url-pattern>/forms/*</url-pattern>
    </servlet-mapping>

しかし、そのメッセージは出力されません。

私を助けてください....

4

1 に答える 1

4

PostConstructおよびPreDestroyアノテーション、次のようなもの:

@Configuration
public class MyConfig{

    @PostConstruct
    public void contextInitialized(){
      System.out.println("Context Initialised");
    }

    @PreDestroy
    public void contextdestroyed(){
      System.out.println("Context Destroyed");
    }
}

構成Beanで使用する必要はなく、どこにでも使用できます。

于 2012-06-06T10:41:51.363 に答える