@Autowired entityManagerFactory为空

我的应用无法自动装配entityManagerFactory。

我的 :

<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>

我的 :

@Component

public class Engine {

@Autowired

@Qualifier("entityManagerFactory")

private EntityManagerFactory entityManagerFactory;

......

}

为什么entityManagerFactory为空?

回答:

为了让spring使用注释进行自动扭曲,您必须告诉spring。在您的xml配置中(假设您还没有context:component-

scanelement)添加一个context:annotation-

config。这将指示Spring应用程序上下文来扫描注解(如@Autowired@Inject@Resource等)做自动装配。

还要确保要EntityManagerFactory注入的Engine类(该类)是spring托管的bean。Spring只会将引用注入到Spring托管的bean中。

以上是 @Autowired entityManagerFactory为空 的全部内容, 来源链接: utcz.com/qa/407946.html

回到顶部