Eine lange Frage, bitte nehmen Sie sie mit.
Wir verwenden Spring + JPA für eine Webanwendung. Mein Team debattiert über Injektion EntityManagerFactoryin 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 EntityManagerFactorysind, dass es zu schwer ist und daher nicht benötigt wird, das EntityManagertut, 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 EntityManagerInstanz 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?