gpt4 book ai didi

java - 为什么我可以从 LocalContainerEntityManagerFactoryBean bean 定义中获取 EntityManagerFactory 对象?

转载 作者:行者123 更新时间:2023-12-02 03:06:28 29 4
gpt4 key购买 nike

我在名为 beans.xml 的文件中有以下 bean 定义:

<bean id="entityManager"
class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="packagesToScan" value="mypackagename" />
<property name="persistenceProviderClass"
value="org.hibernate.jpa.HibernatePersistenceProvider" />
<property name="jpaPropertyMap">
<map>
<entry key="hibernate.dialect" value="org.hibernate.dialect.PostgreSQLDialect" />
<entry key="hibernate.hbm2ddl.auto" value="update" />
</map>
</property>
</bean>

我可以使用以下代码获取此 bean 作为 EntityManagerFactory 对象:

ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");
EntityManagerFactory emf = context.getBean(EntityManagerFactory.class);

这怎么可能?

据我所知,LocalContainerEntityManagerFactoryBean 未实现EntityManagerFactory

这到底是如何工作的?

最佳答案

链条如下:LocalContainerEntityManagerFactoryBean extends AbstractEntityManagerFactoryBean它实现了 FactoryBean<EntityManagerFactory>因此你得到了 EntityManagerFactory .

事实上,您正在请求 EntityManagerFactory来自ApplicationContext已经有EntityManagerFactory由适当的 FactoryBean 创建.

引用FactoryBean文档以获取更多详细信息。

关于java - 为什么我可以从 LocalContainerEntityManagerFactoryBean bean 定义中获取 EntityManagerFactory 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41642289/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com