如何解决注入EntityManagerVs实体管理器工厂
Spring文档在此处详细说明了注入EntityManagerFactory与EntityManager的优缺点,我不确定是否可以对此进行改进。
话虽如此,您的问题中有一些要澄清的地方。
… Spring将为每个Web请求创建一个DAO的新实例…
这是不正确的。如果您的DAO是Spring
bean,则它是单例,除非您通过scope
bean定义中的属性对其进行了配置。为每个请求实例化DAO会很疯狂。
注入EMF的理由是,对于拥有工厂的控制权而言,这是一种良好的实践做法。
这种说法并没有真正成立。一般的良好做法是,应向对象注入完成工作所需的最少协作者。
解决方法
一个很长的问题,请忍受我。
我们将Spring +
JPA用于Web应用程序。我的团队在讨论如何在注入EntityManagerFactory
的GenericDAO
(基于泛型的东西对AppFuse中提供的线DAO,我们不使用JpaDaosupport
过的注射某种原因)EntityManager
。我们正在使用“应用程序管理的持久性”。
反对注入a的论点EntityManagerFactory
是它太重了,因此不是必需的,这EntityManager
就是我们需要的。而且,由于Spring将为每个Web请求创建一个DAO的新实例(我对此表示怀疑),因此不会有任何并发问题,因为在同一EntityManager
实例中,两个线程共享该线程。
注入EFM的理由是,对于拥有工厂的人来说,这始终是一个很好的实践。
我不确定哪种方法最好,请问有人可以启发我吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。