当需要定时缓存,或者做一些定时任务时,最早可能是页面发请求(页面定时),还有就是在配置文件配置在web.xml
但是遇到各种问题,例如初次启动默认多次加载多次(可解决),或者‘定时任务的下一层方法无法获取自动注入的service’(笨办法是通过参数传过去)等等,实在是费时费力
spring mvc其实是自带定时任务配置的,并且可以使用自动注入
实现方法
1》、在springmvc的配置文件中加入
1:
xmlns:task="http://www.springframework.org/schema/task"
2:xsi:schemaLocation下加
http://www.springframework.org/schema/task
http://www.springframework.org/schema/task/spring-task.xsd
3:
<!-- task任务扫描注解 -->
<task:annotation-driven/>
<!-- 配置你的方法类的路径 -->
<context:component-scan base-package="com.trs" />
2》、可以新建一个类
@Component
public class CacheManager {
@Autowired
private BehaviorService behaviorService;
/*
* 添加定时任务
*/
//@Scheduled(cron="0 0/5 14 * * ?") //14点开始间隔5秒执行
@Scheduled(cron = "0 0 1 * * ?")
public void taskCycle(){
/*
* 也可以使用自动注入的Service了
*/
System.out.println("success!对于定时的方法要加Scheduled,其余不加,含有定时任务的类要用@Component以保证被扫描");
}
public String tday(){
Calendar c = Calendar.getInstance();
c.add(Calendar.DAY_OF_MONTH, -1);
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
String mDateTime=formatter.format(c.getTime());
return mDateTime;
System.out.println("我是不是没有被执行");
}
}
就可以了!