
最好让DAO是@Stateless会话Bean或@ApplicationScoped
Bean?那@Singleton呢?这些与DAO相关的选项之间有什么区别?
我不会为DAO使用无状态会话Bean:
EJB由容器池化,因此,如果每个池中有N个实例并有数千个表,那么您将浪费资源(更不用说部署时的成本了)。
将DAO实施为SLSB会鼓励EJB链接,从可伸缩性的角度来看,这不是一个好习惯。
我不会将DAO层绑定到EJB API。
将
@Singleton在EJB
3.1中引入可以让事情更好一点,但我仍然不会实现的DAO作为EJB的。我宁愿使用CDI(也许是自定义构造型,例如,请参见本文)。
否则我根本不会使用DAO。JPA的实体管理器是域存储模式的实现,并且在DAO中包装对域存储的访问不会增加太多价值。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)