java EE中的最佳实践是什么?
在服务(或经理)类
中创建DAO类的实例SalesDAO salesDao = new SalesDAOImpl();
salesDao.findCustomers();
或
在服务(或经理)类中调用DAO EJB
@EJB 私人SalesDAO salesDao;
salesDao.findCustomers();
答案 0 :(得分:2)
第二个是最佳实践(您的DAO可能是CDI bean:它不必是EJB)。
依赖注入是使代码可测试的原因:在对服务进行单元测试时,您可以在服务中注入模拟DAO。
BTW,DAO还需要注入一个DataSource或EntityManager才能从数据库中获取数据。只有在DAO实例由容器管理时才可以这样做。答案 1 :(得分:1)
我喜欢第二个。 DAO谈论责任,意味着管理持久性数据。但是没有理由不使用EJB。让容器为您管理实例。
EJB 3.1规范comitee的成员Adam Bien在他的博客中说: http://www.adam-bien.com/roller/abien/entry/generic_crud_service_aka_dao