1

自動配線された注釈が機能しません。Timertask または run メソッドに問題があるに違いないと思いました。私の他のクラスは正常に動作しています(つまり、Autowire アノテーションは genericService を問題なく初期化します)が、このクラスでは genericService の値は null です。アイデアはありますか?

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 は、制御または処理しないオブジェクトを自動配線できません。注入されたUsersUpdateTask豆を使用してください。

于 2013-10-03T12:45:35.250 に答える