Eine lange Frage, bitte nehmen Sie sie mit.
Wir verwenden Spring + JPA für eine Webanwendung. Mein Team debattiert über Injektion EntityManagerFactory
in den GenericDAO
(DAO basierend auf Generics etwas über die von AppFuse vorgesehen Linien, wissen wir nicht verwenden , JpaDaosupport
über die Injektion aus irgendeinem Grund) ein EntityManager
. Wir verwenden "anwendungsverwaltete Persistenz".
Die Argumente gegen das Injizieren von a EntityManagerFactory
sind, dass es zu schwer ist und daher nicht benötigt wird, das EntityManager
tut, was wir brauchen. Da Spring für jede Webanforderung eine neue Instanz eines DAO erstellen würde (ich bezweifle dies), treten keine Parallelitätsprobleme auf, da dieselbe EntityManager
Instanz von zwei Threads gemeinsam genutzt wird.
Das Argument für die Injektion von EFM ist, dass es eine gute Praxis ist, eine Fabrik im Griff zu haben.
Ich bin mir nicht sicher, welcher Ansatz der beste ist. Kann mich bitte jemand aufklären?