私は、休止状態の注釈付きクラスを使用し、DAO サービス層を使用する wicket アスペクト j アプリケーションを持っています。
アプリケーションコンテキストで実行されない updatetask を開発しました。そのため、メイン メソッドを作成し、コンテキストをグローバル変数としてロードしました。
public static void main(String[] args) throws Exception
{
context = new ClassPathXmlApplicationContext(LOCATIONS);
XS2RAWebApp webApp = new XS2RAWebApp() {
@Override
public void init() {
getComponentInstantiationListeners().add(new SpringComponentInjector(this, context,true));
}
};
ThreadContext.setApplication(webApp);
ResponseUpdateTask updatetask = new ResponseUpdateTask();
updatetask.run();
}
ご覧のとおり、SpringComponentInjector には springcomponent インジェクターが用意されています。
この更新タスクでは、休止状態でデータを保存したいと考えています。
Hibernate エンティティがあり、このエンティティ内にサービス DAO への参照があります。
@MappedSuperclass()
public abstract class Entiteit {
private static final Logger log = LoggerFactory.getLogger(Entiteit.class);
@SpringBean()
@Transient
private transient DataAccessHelper daoHelper;
...
public DataAccessHelper getDaoHelper() {
if (daoHelper== null) {
Injector.get().inject(daoHelper);
}
return daoHelper;
}
}
私が試したこと
- Mockapplication を使用して、新しい new SpringComponentInjector(this, context,true) を追加するだけです。これにより、アプリケーションで init を実行するように指示する例外が発生します (Apllication.init())
- 試行錯誤の解決策
私が試したことはあまりないように思えますが、今は本当に選択肢がありません:S