首页  >  问答  >  正文

java - 如何在tomcat启动的时候,执行项目的初始化程序

在tomcat启动的时候,控制台输出了很多信息,信息中显示在tomcat启动的时候,加载了很多项目的配置文件,并且调用了项目初始化方法,但我不知道是怎么被调用的。在那里被调用的?是需要配置tomcat的一些什么东西吗?

PS:javaweb项目

我想大声告诉你我想大声告诉你2685 天前1045

全部回复(4)我来回复

  • PHP中文网

    PHP中文网2017-07-05 10:04:11

    web.xml中做如下配置

    <servlet>  
       <servlet-name>MyServlet</servlet-name>  
       <servlet-class>org.cai.MyServlet</servlet-class>  
       <strong><load-on-startup>0</load-on-startup></strong>  
      </servlet> 
    

    回复
    0
  • 某草草

    某草草2017-07-05 10:04:11

    web.xml中找找Listener

    回复
    0
  • PHP中文网

    PHP中文网2017-07-05 10:04:11

    楼主需要的是系统了解一下 Servlet 的生命周期。当你实现一个 Servlet 的时候,它的哪些方法会在 Web 应用启动的时候调用。这方面的文章太多了:

    http://www.jianshu.com/p/1d50...
    http://www.runoob.com/servlet...

    回复
    0
  • 習慣沉默

    習慣沉默2017-07-05 10:04:11

    有三种办法:

    1. 如 @treeandgrass 所说,对某个Servlet重写init(),但前提是在web.xml中给load-on-startup设上值(或者加@WebServlet注解);

    2. 对某个Filter实现init(),配在web.xml中(或者加@WebFilter注解);

    3. 实现 ServletContextListener 接口,并实现contextInitialized(),配在web.xml中(或者加@WebListener注解)。

    这三种方法中,我最常用最后一种(ServletContextListener)(在Web中使用Spring通常只用这种方法),因为它总是优先于Filter和Servlet执行的,而且不会跟实现具体功能的Servlet、Filter混在一起。

    初始化的工作包括:

    • 线程池、数据库连接池、网络连接池的初始化

    • IoC容器的加载

    • 启动定时器

    • 其他需要初始化的对象
      以上大多数初始化工作是需要在Web服务器停止时关闭的,这些工作应写在contextDestroyed()中。

    回复
    0
  • 取消回复