2014-10-30 101 views
0

java EE中的最佳實踐是什麼?DAO類實例vs DAO EJB

  1. 在服務(或經理)類

    SalesDAO salesDao =新SalesDAOImpl創建DAO類的實例();

    salesDao.findCustomers();

  • 呼叫服務中的DAO EJB(或經理)類

    @EJB 私人SalesDAO salesDao;

    salesDao.findCustomers();

  • 回答

    1

    第二個是最佳實踐(您的DAO可以是CDI bean:它不一定是EJB)。

    依賴注入是使代碼可測試的原因:在對服務進行單元測試時,可以在服務中注入模擬DAO。

    順便說一下,DAO還需要有一個DataSource或一個EntityManager注入才能從數據庫中獲取數據。這隻有在DAO實例由容器管理時纔有可能。

    +0

    能告訴你一個例子嗎? – 2014-10-30 16:49:33

    +0

    一個什麼樣的例子? – 2014-10-30 16:57:25

    +0

    我怎樣才能使用CDI Bean?你告訴我,它不一定是一個EJB – 2014-10-30 16:59:24