2012-06-06 168 views
1

我想在我的web應用程序啓動(上下文加載)後執行方法(或某些功能)。我使用Spring 3.0作爲框架。Web應用程序啓動(Spring 3.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> 

,但它不是打印該消息.. ...

請幫我....

+0

雖然我傾向於面向Spring的解決方案,但您確定您正在尋找正確的位置嗎? 「偵聽器」故意的拼寫錯誤,特別是在'web.xml'中?最好剪切和粘貼示例以避免紅鯡魚。這對我來說可以。 –

回答

3

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使用,也可以是anywhere

+0

是否需要在任何xml文件中輸入lass MyConfig .....如果不是,那麼MyConfig類的位置如何..? –

+1

不,只要它被掃描註釋 - 你的應用上下文中的一個設置,就把它放在你喜歡的任何地方。另外,它不一定要在config bean中,你可以把它放在任何spring管理類中。 – NimChimpsky

相關問題