gpt4 book ai didi

spring - @Autowired entityManagerFactory 为空

转载 作者:行者123 更新时间:2023-12-03 23:15:48 28 4
gpt4 key购买 nike

我的应用无法 Autowiring entityManagerFactory。

我的applicationContext.xml:

<tx:annotation-driven/>
<context:component-scan base-package="top.level.package" />

<bean id="persistenceUnitManager"
class="org.springframework.orm.jpa.persistenceunit.DefaultPersistenceUnitManager">
<property name="persistenceXmlLocation">
<value>classpath:jpa-persistence.xml</value>
</property>
</bean>

<bean id="entityManagerFactory"
class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="persistenceUnitManager" ref="persistenceUnitManager" />
</bean>

<bean id="transactionManager"
class="org.springframework.orm.jpa.JpaTransactionManager">
<property name="entityManagerFactory" ref="entityManagerFactory" />
</bean>

我的 java 类:

@Component
public class Engine {

@Autowired
@Qualifier("entityManagerFactory")
private EntityManagerFactory entityManagerFactory;
......
}

问题:

为什么 entityManagerFactory 为空?

最佳答案

要让 spring 使用注解进行 Autowiring ,你必须告诉 spring。在您的 xml 配置中(假设您还没有 context:component-scan 元素)添加一个 context:annotation-config。这将指示 spring 应用程序上下文扫描注释(如 @Autowired@Inject@Resource 等)以执行 Autowiring 。

还要确保您希望将 EntityManagerFactory 注入(inject)的类(Engine 类)是一个 spring 管理的 bean。 Spring 只会将引用注入(inject)到 Spring 管理的 bean 中。

关于spring - @Autowired entityManagerFactory 为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18411803/

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