1

自动连线注释不起作用。我认为 Timertask 或 run 方法一定有问题。我的其他类工作正常(我的意思是 Autowired 注释初始化 genericService 没有任何问题)但在这个类中 genericService 值为空。有什么想法吗?

public class UsersUpdateTask extends TimerTask {
    @Autowired
    GenericService genericService;

  @Override
  public void run() {
     //genericService.save() gives null pointer.
  }

}

我的 applicationContext 定义;

<bean id="usersUpdateTask" class="myPackage.UsersUpdateTask">               
</bean>

<bean id="genericLogger" class="utilPack.Logger">                
</bean> 

<bean id="genericService" class="servicePack.GenericService">

这个类完美地工作;

public class Logger implements Serializable {

@Autowired
private GenericService genericService; //works fine
.....
}

另一个类中有一个方法可以调用UsersUpdateTask的run方法;

public void updateUsersList(){        
    timer.schedule(new UsersUpdateTask(), 1000, 60*60*1000);
}
4

1 回答 1

7

那么它就在那里

timer.schedule(new UsersUpdateTask(), 1000, 60*60*1000);

您正在自己创建对象。Spring 不能自动装配它不控制或处理的对象。使用注入的UsersUpdateTaskbean。

于 2013-10-03T12:45:35.250 回答