java web启动时实现执行代码的几种方式

来源:互联网 发布:如何在手机上开淘宝店 编辑:程序博客网 时间:2024/05/18 20:31

1、实现Servlet监听器接口ServletContextListener

[java] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. public class InitListener implements ServletContextListener {  
  2.   
  3.     @Override  
  4.     public void contextDestroyed(ServletContextEvent context) {  
  5.           
  6.     }  
  7.   
  8.     @Override  
  9.     public void contextInitialized(ServletContextEvent context) {  
  10.         // 上下文初始化执行  
  11.         System.out.println("================>[ServletContextListener]自动加载启动开始.");  
  12.        SpringUtil.getInstance().setContext(  
  13. <span style="white-space:pre">          </span>WebApplicationContextUtils.getWebApplicationContext(arg0.getServletContext())  
  14. <span style="white-space:pre">          </span>);  
  15.     }  
  16.   
  17. }  
然后在web.xml文件配置该监听器

[html] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. <listener>  
  2.         <listener-class>com.test.init.InitListener</listener-class>  

  1.     </listener>  
  2. 2、编写一个Servlet,在web.xml里面配置容器启动后执行即可

    [html] view plain copy
     在CODE上查看代码片派生到我的代码片
    1. public class InitServlet extends HttpServlet {  
    2.   
    3.     /**  
    4.      */  
    5.     private static final long serialVersionUID = 1L;  
    6.   
    7.     @Override  
    8.     public void init(ServletConfig config) {  
    9.         try {  
    10.             super.init();  
    11.         } catch (ServletException e) {  
    12.             e.printStackTrace();  
    13.         }  
    14.         System.out.println("================>[Servlet]自动加载启动开始.");  
    15.         // 读取Spring容器中的Bean[此时Bean已加载,可以使用]  
    16.        //执行想要的代码  
    17.         System.out.println("================>[Servlet]自动加载启动结束.");  
    18.     }  
    19. }  
    20.    
    21. 然后在web.xml文件配置该Servlet的启动方式为:容器启动后执行  
    22.     <servlet>  
    23.         <servlet-name>InitServlet</servlet-name>  
    24.         <servlet-class>com.test.init.InitServlet</servlet-class>  
    25.         <init-param>  
    26.             <param-name>username</param-name>  
    27.             <param-value>test</param-value>  
    28.         </init-param>  
    29.                 <!-- 此处指定加载顺序为2,表明还有优先级更高的Servlet要先执行 -->  
    30.         <load-on-startup>2</load-on-startup>  
    31.     </servlet>  
    32.  关于启动后执行,由load-on-startup指定:  
    33. (1)当值为0或者大于0时,表示容器在应用启动时就加载这个servlet。值越小,启动优先级越高;  
    34. (2)当是一个负数时或者没有指定时,表示该servlet被调用时才加载。  
    35. 3、如果你使用Spring IOC作为Bean管理容器,那么可以指定init-method其中init-method表示bean加载成功后,立即执行某个方法。配置如下:start为要执行的方法名称

      [html] view plain copy
       在CODE上查看代码片派生到我的代码片
      1. <!-- service -->  
      2. <bean id="shopService" class="com.test.teach.service.ShopService" <span style="color:#33ffff;">init-method="start"</span>>  
      3.     <property name="shopDao" ref="shopDao" />  
      4. </bean>  


0 0
原创粉丝点击