我正在编写一个 Java EE 6 应用程序,它使用 Morphia 将对象持久保存到 MongoDB。我希望能够@Inject
在必要时使用我的 DAO 类,因此我创建了一个工厂类来适当地实例化 DAO。它看起来像这样:
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
没有无参数的构造函数。我会添加一个,但 Morphia BasicDAO 类也没有,所以我不知道它会以这种方式工作。
有没有办法将@Inject
DAO 实例放入我的 EJB、Servlet 等?还是我每次都需要手动实例化它?