2012-06-06 65 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

相关问题