java web系统初始化读取文件_java web系统级初始化工作

通常我们在做web开发时,有些系统级参数希望在web启动时就进行一次性初始化,供整个工程调用使用。如,系统配置参数等。这时可以采用两种方式:一是定义一个servlet、另一种是使用监听器。

方案一:使用servlet的方式应该不陌生,在web.xml中定义一个servlet,在init方法中把要初始化的东西写到里面;如:

initServlet

com.ifeng.crm.common.InitServlet

1

注:不需要写servlet-maping

public class InitServlet extends HttpServlet {

private static Logger logger = Logger.getLogger(InitServlet.class);

@Override

public void init() throws ServletException {

// TODO Auto-generated method stub

super.init();

ServletContext context = super.getServletContext();

ApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(context);

InitService initService = (InitService)ctx.getBean("initService");

SyncService syncService = (SyncService)ctx.getBean("syncService");

logger.info("初始化数据开始。。。");

initService.init();

logger.info("初始化完成!");

logger.info("启动iams同步服务。。。");

new Thread(new SyncIamsThread(syncService)).start();

logger.info("启动iams同步服务完成!");

}

}

方案二:listener:

ServletContext 被 Servlet 程序用来与 Web 容器通信。每一个 Web 应用程序含有一个Context,被Web应用内的各个程序共享。所以ServletContext 的最大应用是Web缓存----把不经常更改的内容读入内存,所以服务器响应请求的时候就不需要进行慢速的磁盘I/O了。

ServletContextListener 是 ServletContext 的监听者,如果 ServletContext 发生变化,如服务器启动时 ServletContext 被创建,服务器关闭时 ServletContext 将要被销毁。在JSP文件中,application 是 ServletContext 的实例,由JSP容器默认创建。Servlet 中调用 getServletContext()方法得到 ServletContext 的实例。

服务器启动时,ServletContextListener 的 contextInitialized()方法被调用,所以在里面创建好缓存。

实例:

1.web.xml

com.zzcatv.util.projectInit

2.java

public class ProjectInit implements ServletContextListener{

private static Logger logger = Logger.getLogger(ProjectInit.class);

public void contextDestroyed(ServletContextEvent arg0) {

logger.info("==========初始化信息进行销毁==========");

}

public void contextInitialized(ServletContextEvent arg0) {

logger.info("==========系统初始化==========");

try {

ApplicationContext ctx = WebApplicationContextUtils.getRequiredWebApplicationContext(arg0.getServletContext());

InitService initService = (InitService) ctx.getBean("initServiceImpl");

initService.init();

} catch (Exception e) {

e.printStackTrace();

}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值