TimerTask的run()方法里面如何调用service层里面的方法

在java的spring框架中,用Timer和TimerTask来实现定时任务,有时我们要在TimerTask的子类的重写run方法里,调用service层的方法。

但是不管是spring.xml配置的bean还是注解@autoware注入的bean,在执行的时候都会报空指针异常。

这其中主要的问题是TimerTask不是由spring管理的,所以你TimerTask内部的service也无法自动注入,2种解决办法,1、TimerTask交由spring管理;2、通过applicationContext.getBean()获取service。

写一个servlet 在web.xml里配置一下。 利用servlet的生命周期init()初始化run()方法也可以。

原文地址:https://www.cnblogs.com/boomoom/p/9136557.html

时间: 2024-08-29 17:32:42

TimerTask的run()方法里面如何调用service层里面的方法的相关文章

asp.net c#并行调用service层代码

public ActionResult Home(AdviserSearchModel model) { //顾问列表需要的当前城市的下级地区 var ip = "117.82.196.195"; var districts = this.districtService.GetDistrictByIp(ip); //顾问列表分页数据 model.OperatorType = AdviserEnum.FurnitureAdviser; var result = this.adviserS

SpringAOP来监控service层中每个方法的执行时间

使用AOP来说,太方便了,并且特别适合这类场景. 代码如下,这里是将要统计的信息写到log文件中,也可以设计成写入表中. package com.ecsoft.interceptor; import org.aspectj.lang.ProceedingJoinPoint; import org.aspectj.lang.annotation.Around; import org.aspectj.lang.annotation.Aspect; import org.aspectj.lang.re

在Java filter中调用service层方法

在项目中遇到一个问题,在 Filter中注入 Serivce失败,注入的service始终为null.如下所示: 1 public class WeiXinFilter implements Filter{ 2 3 @Autowired 4 private UsersService usersService; 5 6 public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)

JavaSE8基础 多态 子类重写了父类的普通方法 父类引用调用子类中重写的方法

os :windows7 x64    jdk:jdk-8u131-windows-x64    ide:Eclipse Oxygen Release (4.7.0)        代码: class Father { public int num = 1; public void sayHello() { System.out.println("hello"); } public static void staticFun() { System.out.println("s

重算末次管理时间的方法【Controller和Service层】

1 /** 2 * 功能描述:[重算末次管理时间页面跳转] 3 * 创建者:shiyanjun 4 * 创建时间: Apr 14, 2015 5:38:43 PM 5 * @return 6 */ 7 @RequestMapping(value = "/toUpdateLastMngDate", method = RequestMethod.GET) 8 public String toUpdateLastMngDate() { 9 return "ehr/toUpdateL

子类实例化,父类构造器中被调用被子类重写的方法,会执行父类还是子类的呢?

public class Test001 { public static void main(String[] args) { new Child(); } }class Father{ private String name = "f"; public Father(){ tell(); } public void tell(){ System.out.println("father "+this.name); }}class Child extends Fath

JS调用App方法及App调用JS方法

做App内嵌H5项目时,经常会遇到js与App的交互,最普遍的就是方法的互相调用,那么如何实现方法的互相调用呢? 写在前面: 如果只是小项目且后期扩大的可能性不大的时候,可以忽略,可如果是长期项目的话,那么就需要考虑以下一些问题了. 1. 方法命名规范. 如果考虑到以后会有大量的方法,那么规范化的命名就很重要了,规范化的命名,既保证了名字的唯一性又保证了代码的可读性方便开发过程,也方便后期维护.   举个栗子,  如果现在有一个方法,是关闭webview, js调用app的方法, 如果直接叫cl

如何让CI框架支持service层

本文主要介绍了在controller和model中加一个业务层service,由它来负责业务逻辑,封装好的调用接口可以被controller复用,提高了通用的业务逻辑的复用性,设计到具体业务实现会调用Model的接口. 大家知道CodeIgniter框架式MVC分层的,通常大家把业务逻辑写到Controller中,而Model只负责和数据库打交道. 但是随着业务越来越复杂,controller越来越臃肿,举一个简单的例子,比如说用户下订单,这必然会有一系列的操作:更新购物车.添加订单记录.会员添

让CI框架支持service层

大家知道CodeIgniter框架式MVC分层的,通常大家把业务逻辑写到Controller中,而Model只负责和数据库打交道. 但是随着业务越来越复杂,controller越来越臃肿,举一个简单的例子,比如说用户下订单,这必然会有一系列的操作:更新购物车.添加订单记录.会员添加积分等等,且下订单的过程可能在多种场景出现,如果这样的代码放controller中则很臃肿难以复用,如果放model会让持久层和业务层耦合.现在公司的项目就是,很多人将一些业务逻辑写到model中去了,model中又调