在web项目启动时,执行某个方法

 

         在web项目中有很多时候需要在项目启动时就执行一些方法,而且只需要执行一次,比如:加载解析自定义的配置文件、初始化数据库信息等等,在项目启动时就直接执行一些方法,可以减少很多繁琐的操作。

         在工作中遇到了项目初始数据需要跟其他项目同步的问题,也就是说在项目部署后,启动的时候就要同步另外一个项目的数据,这里写了个简单的实例,用的是监听器机制,创建一个类实现ServletContextListener 接口,实现里面的contextInitialized和contextDestroyed方法,


[java] view plain copy

  1. package com.test. listener;  

  2.   

  3. import javax.servlet.ServletContextEvent;  

  4. import javax.servlet.ServletContextListener;  

  5. //创建的类名根据需要定义,但一定要实现ServletContextListener接口  

  6. public class WebContextListener implements ServletContextListener {  

  7.   

  8.       

  9.     @Override  

  10.     public void contextInitialized(ServletContextEvent arg0) {  

  11.         // TODO Auto-generated method stub  

  12.         //这里可以放你要执行的代码或方法     

  13.     }  

  14.       

  15.     @Override  

  16.     public void contextDestroyed(ServletContextEvent arg0) {  

  17.         // TODO Auto-generated method stub  

  18.           

  19.     }  

  20.   

  21.       

  22. }  


其中contextInitialized方法是项目在启动初始化的时候就会执行的方法,contextDestroyed是在消亡的时候执行的方法,这里我们需要把随项目启动时执行的代码放在contextInitialized方法中。

         然后在web.xml中为这个监听器添加配置,

[html] view plain copy

  1. <listener>  

  2.   <listener-class> com.test. listener.WebContextListener</listener-class>  

  3. </listener>  

其中listenner-class配置的是上面定义的监听器类路径

         这样就就可以了,部署好项目,启动就可以执行contextInitialized里面的代码了。

 

如果你需要在项目启动的时候加载解析你自定义的配置文件,可以将加载解析配置文件的代码放在contextInitialized方法里面,这样在你项目启动的时候就可以解析你配置文件里的信息了。加载解析配置文件的方法,可以参考我的另一篇博客:http://blog.csdn.NET/cb2474600377/article/details/44460907

这里也介绍的加载方式是利用session监听器来触发,你也可以根据需要改为上面介绍这个方式,在项目启动时触发加载解析配置文件。