公開されているクラス(他のPOJOクラスで利用可能)とプライベートメンバーが1つautowiredされているweb-appを実行しています。POJOからSpring管理対象オブジェクトを呼び出す方法は?
スプリング管理クラス
public class EPSQueueSender {
@Autowired
private AmqpTemplate epsMessageTemplate;
public void dosomething(...){
epsMessageTemplate.convertAndSend(...); // Here epsMessageTemplate is null if instance of EPSQueueSender taken from other POJO
}
}
POJOクラス
public class Test{
EPSQueueSender sender = new EPSQueueSender();
sender.dosomething(....); // gives null exception on epsMessageTemplate
}
スプリングコード(WebAppのように実行されている)とPOJOクラスコード(異なるジャー)は同じJVM上にあります。 POJOは初期化されたautowiredオブジェクトを取得できません。ただし、WebAppプロジェクトで使用すると初期化されます。
誰かがこの問題を克服するにはどうすればよいですか? 私が試してみたい最後のことは、POJOからhttpリクエストとしてWebサーバーにヒットすることです。
を助けることができることを願っていますか?あなたはXMLで豆を定義しましたか、または春4に頼っていますか? – SMA
xmlで定義され、xmlはサーブレットからインポートされます。したがって、このbeanは適切にautowiredされ、スプリング側コード –
で初期化されます。この呼び出しをどのようにインスタンス化しますか?それは春ですか?あなたの春の設定を共有できますか? – SMA