web项目启动时,执行某个方法
在启动项目的时候,有时候希望后台运行一下方法:
- 使用监听实现,实现ServletContextListener
- 使用servlet实现,extends javax.servlet.http.HttpServlet
- spring初始化bean时
1.监听实现
web文件添加
<listener>
<listener-class>test.InitListener</listener-class>
</listener>
类实现
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
public class InitListener implements ServletContextListener {
@Override
public void contextInitialized(ServletContextEvent paramServletContextEvent) {
实现方法
}
@Override
public void contextDestroyed(ServletContextEvent paramServletContextEvent) {
}
}
2.使用servlet实现
类实现
import javax.servlet.http.HttpServlet;
public class JKServlet extends HttpServlet{
private static final long serialVersionUID = 1L;
@Override
public void init(ServletConfig config) throws ServletException {
super.init(config);
System.out.println("=========================");
System.out.println("============t 结束*zai =============");
}
}
在web.xml中配置
<servlet>
<servlet-name>JKServlet</servlet-name>
<servlet-class>com.fh.service.customer.JuKong.JKServlet</servlet-class>
<init-param>
<param-name>Delayed_seconds</param-name>
<param-value>10</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
load-on-startup的值必须为整数,当load-on-startup值为负整数或者未指定时,容器在该servlet被调用时加载
当其值为0和正整数时,容器启动时加载,值越小,优先级越高
3.spring初始化bean时
1)、在需要进行操作的bean的xml定义中加上init-method属性,指定下启动时运行哪个方法;
2)、实现InitializingBean接口,Spring在启动时会自动调用这个接口中的初始化方法
public class SysInitBean implements InitializingBean,ServletContextAware{public void afterPropertiesSet() throws Exception {//初始化代码 }}
实现InitializingBean接口就可以获取spring的所有配置信息。
实现ServletContextAware,可以获得servletcontext