java 监听器ServletContextListener,服务启动加载及定时器
来源:互联网 发布:国外刻录软件 编辑:程序博客网 时间:2024/05/24 05:23
- 服务器启动时,ServletContextListener 的 contextInitialized()方法被调用,所以在里面创建好缓存。
实现方式。
web.xml中加入配置文件
<!-- 监听器 -->
<listener>
<description>ServletContextListener</description>
<listener-class>com.listener.ContextInitListener</listener-class>
</listener>
代码实现
package com.listener;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Timer;
import java.util.UUID;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import org.apache.log4j.Logger;
import org.springframework.context.ApplicationContext;
import org.springframework.web.context.support.WebApplicationContextUtils;
import org.springframework.web.servlet.i18n.SessionLocaleResolver;
import org.springframework.web.util.WebUtils;
import com.backoffice.action.IndexAction;
import com.bean.ConstantBean;
import com.entity.SysLanguage;
import com.service.impl.IndexService;
/**
* xujun Application Lifecycle Listener implementation class ContextInitListener
*
*/
public class ContextInitListener implements ServletContextListener {
//定时器类
private Timer timer = null;
private final Logger logger = Logger.getLogger(ContextInitListener.class);
/**
* Default constructor.
*/
public ContextInitListener() {
// TODO Auto-generated constructor stub
}
/**
* @see ServletContextListener#contextInitialized(ServletContextEvent)
*/
public void contextInitialized(ServletContextEvent arg0) {
try {
timer = new Timer(true);
logger.info("定时器启动");
ApplicationContext context = WebApplicationContextUtils
.getRequiredWebApplicationContext(arg0.getServletContext());
// 定时任务设定
// ,0表示任务无延迟,5*1000表示每隔5秒执行任务,60*60*1000表示一个小时,24*60*60*1000表示一天。
timer.schedule(new categoryTimer(context), 0, 24 * 60 * 60 * 1000);
// 加载多语言(没设定时)
Object obj = context.getBean("indexService");
IndexService usi = (IndexService) obj;
List<SysLanguage> languages = usi.getLanguage();
if (languages != null && languages.size() > 0) {
for (SysLanguage language : languages) {
ConstantBean.zhCache.put(language.getLanguageKey(),
language.getZh());
ConstantBean.myanmarCache.put(language.getLanguageKey(),
language.getMyanmar());
}
}
} catch (Exception e) {
}
}
/**
* @see ServletContextListener#contextDestroyed(ServletContextEvent)
*/
public void contextDestroyed(ServletContextEvent arg0) {
timer.cancel();
arg0.getServletContext().log("定时器销毁");
}
}
定时任务
package com.listener;
import java.util.ArrayList;
import java.util.List;
import java.util.TimerTask;
import net.sf.json.JSONArray;
import org.springframework.context.ApplicationContext;
import com.bean.CategoryInfo;
import com.bean.ConstantBean;
import com.service.impl.CategoryService;
/**
* 定时加载类目
*
* @author xujun
*/
public class categoryTimer extends TimerTask {
private ApplicationContext context;
public categoryTimer(ApplicationContext context) {
this.context = context;
}
@Override
public void run() {
Object obj = context.getBean("categoryService");
CategoryService categoryService = (CategoryService) obj;
List<CategoryInfo> list = new ArrayList<CategoryInfo>();
try {
list = categoryService.getAllCategory();
JSONArray jsonArray = JSONArray.fromObject(list);
ConstantBean.CategoryInfos = jsonArray.toString();
} catch (Exception e) {
}
}
}
- java 监听器ServletContextListener,服务启动加载及定时器
- tomcat监听器ServletContextListener加载web应用数据
- ServletContextListener监听器
- ServletContextListener监听器
- 启动Tomcat时报监听器类(实现这个 ServletContextListener接口)引起的java.lang.ClassNotFoundException错误
- java监听器:ServletContextListener获取spring注入对象
- Java深入 - WEB容器监听器详解 ServletContextListener
- 加载.properties文件内容到内存----tomcat服务启动与停止的监听(使用ServletContextListener)
- 加载.properties文件内容到内存----tomcat服务启动与停止的监听(使用ServletContextListener)
- java ServletContextListener 定时器某个时刻执行事件
- 监听器ServletContextListener小记
- 监听器ServletContextListener小记
- 使用ServletContextListener监听器
- Spring ServletContextListener监听器
- 使用ServletContextListener监听器
- web上下文监听器ServletContextListener
- servletContextListener监听器调用问题
- ServletContextListener监听器解析
- UC/OS II 消息队列
- Big Data
- 【图像处理笔记】锐化空间滤波器
- 9月19日linux系统开机自检硬盘数据故障
- 日经春秋 20150921
- java 监听器ServletContextListener,服务启动加载及定时器
- Android 深入理解Android中的自定义属性
- Views动画 和ViewPropertyAnimator
- Node.js 笔记(一) nodejs、npm、express安装
- <C/C++算法> 图论基础算法小结(邻接矩阵实现)
- Java中List<>的用法
- poipdfsolr学习相关网址
- JDBC相关机制与JDBC连接数据库步骤
- IOS工具篇