Morphia を使用してオブジェクトを MongoDB に永続化する Java EE 6 アプリケーションを作成しています。必要に応じて DAO クラスを作成できるようにしたい@Inject
ので、DAO を適切にインスタンス化する Factory クラスを作成しました。次のようになります。
public class MyDAOFactory {
@Inject
private Datastore mongoDatastore = null;
/**
* Creates the DAO
*/
@Produces
@ApplicationScoped
public MyDAO createDAO() {
MyDAO dao = new MyDAO(
this.mongoDatastore);
return dao;
}
}
コードは正常にコンパイルされますが、JBoss EAP 6.1 でアプリケーションを実行するとMyDAO
、no-arg コンストラクターがないためにエラーが発生します。1 つ追加しますが、Morphia BasicDAO クラスにも 1 つがないため、そのように機能するかどうかはわかりません。
@Inject
DAO インスタンスを EJB やサーブレットなどに入れる方法はありますか? または、毎回手動でインスタンス化する必要がありますか?