Spring定时任务
来源:互联网 发布:Round it还是around it 编辑:程序博客网 时间:2024/05/20 05:08
1.配置定时时间即执行时间,使用cron表达式
#定时时间,每月凌晨1点执行
task.cron=0 0 1 1 * ?
log.isWrite=true
2.在app-context.xml文件中加载配置文件
<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="locations"> <list> <value>/WEB-INF/config/common.properties</value> </list> </property></bean>
3.在app-context.xml文件注入Bean
<bean id="commonProperties" class="java.util.Properties"> <constructor-arg> <props> <prop key="task.cron">${task.cron}</prop> <prop key="log.isWrite">${log.isWrite}</prop> </props> </constructor-arg></bean>
4.为接口的实现类添加定时任务注解,注意该方法的返回值为void,没有参数
@Scheduled(cron = "${task.cron}")
5.通过Spring上下文读取配置文件中的数据
package com.better517na.rewardCheckComputeService.util;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.io.OutputStream;import java.io.UnsupportedEncodingException;import java.net.URLDecoder;import org.springframework.beans.BeansException;import org.springframework.context.ApplicationContext;import org.springframework.context.ApplicationContextAware;import org.springframework.stereotype.Component;import com.better517na.rewardCheckComputeService.service.IScheduleTaskService;/** * Spring 工具类. * * @author peiyu */@Componentpublic class SpringContextUtil implements ApplicationContextAware { /** * Spring应用上下文环境 */ private static ApplicationContext applicationContext; /** * * {@inheritDoc}. */ @Override public void setApplicationContext(ApplicationContext ctx) throws BeansException { SpringContextUtil.applicationContext = ctx; CommentedProperties properties = new CommentedProperties(); String path = SpringContextUtil.class.getClassLoader().getResource("").getPath(); try { path = URLDecoder.decode(path, "UTF-8"); } catch (UnsupportedEncodingException e1) { e1.printStackTrace(); } System.out.println("####1加载配置文件:" + path); path = path.substring(0, path.indexOf("classes")) + "config/common.properties"; System.out.println("####2加载配置文件:" + path); try { properties.load(new FileInputStream(path), "UTF-8"); } catch (IOException e) { e.printStackTrace(); } //获取配置文件中的值 FileLogUtil.isWrite = properties.getProperty("log.isWrite"); OutputStream fos = null; try { fos = new FileOutputStream(path); //修改配置文件中的值 properties.setProperty("log.isWrite", "false"); properties.store(fos); System.out.println("####" + computeDate + "奖励计算结束####"); } catch (Exception e) { e.printStackTrace(); System.out.println("####定时计算服务出错:" + e.getMessage()); } finally { if (fos != null) { try { fos.close(); } catch (IOException e) { e.printStackTrace(); } } } } /** * 设置applicationContext. * * @return 返回applicationContext */ public static ApplicationContext getApplicationContext() { return applicationContext; } /** * @param clazz . * @return . */ public static Object getBean(Class<?> clazz) { return applicationContext.getBean(clazz); } /** * @param name . * @return . */ public static Object getBean(String name) { return applicationContext.getBean(name); }}
5.
0 0
- Spring计划任务(定时任务)
- Spring 定时任务功能
- Spring 定时任务实现
- spring执行定时任务
- spring执行定时任务
- spring中的定时任务
- spring多定时任务
- Spring+Quartz定时任务
- spring的定时任务
- spring 定时任务
- Spring 定时任务功能
- spring多任务定时
- spring quartz 定时任务
- Spring-quartz定时任务
- spring中的定时任务
- Spring 定时任务
- spring 定时任务 quartz
- spring定时任务
- WebRTC源码分析:音频模块结构分析
- Android 简易版弹性ListView
- 几款项目管理平台
- NB-IoT标准核心协议冻结
- 96.iOS各种 bar 隐藏的方法
- Spring定时任务
- Range Sum Query - Immutable
- SQL 查询数据库中包含指定字符串的相关表和相关记录
- java实现标准化考试系统详解(四)-----初始化操作实现
- 记录 Linux环境下java web项目CPU爆表 “事故”,肇事者:GC
- Linux下线程知识
- OSW/OSWBB/OSWBBA的使用
- 使用Shell调用ADB指令方式来点击屏幕
- Android Wi-Fi Display(Miracast)介绍