java EE中的最佳實踐是什麼?DAO類實例vs DAO EJB
在服務(或經理)類
SalesDAO salesDao =新SalesDAOImpl創建DAO類的實例();
salesDao.findCustomers();
或
呼叫服務中的DAO EJB(或經理)類
@EJB 私人SalesDAO salesDao;
salesDao.findCustomers();
java EE中的最佳實踐是什麼?DAO類實例vs DAO EJB
在服務(或經理)類
SalesDAO salesDao =新SalesDAOImpl創建DAO類的實例();
salesDao.findCustomers();
或
呼叫服務中的DAO EJB(或經理)類
@EJB 私人SalesDAO salesDao;
salesDao.findCustomers();
第二個是最佳實踐(您的DAO可以是CDI bean:它不一定是EJB)。
依賴注入是使代碼可測試的原因:在對服務進行單元測試時,可以在服務中注入模擬DAO。
順便說一下,DAO還需要有一個DataSource或一個EntityManager注入才能從數據庫中獲取數據。這隻有在DAO實例由容器管理時纔有可能。
我主張第二個。 DAO討論責任性,意味着管理持久性數據。但沒有理由不使用EJB。讓容器爲您管理實例。
亞當邊,EJB 3.1規範comitee的成員在其博客中表示: http://www.adam-bien.com/roller/abien/entry/generic_crud_service_aka_dao
能告訴你一個例子嗎? – 2014-10-30 16:49:33
一個什麼樣的例子? – 2014-10-30 16:57:25
我怎樣才能使用CDI Bean?你告訴我,它不一定是一個EJB – 2014-10-30 16:59:24