作者:雇Anitamia | 来源:互联网 | 2023-12-14 03:54
本文讨论了在Spring3.1中,数据源未能自动连接到@Configuration类的错误原因,并提供了解决方法。作者发现了错误的原因,并在代码中手动定义了PersistenceAnnotationBeanPostProcessor。作者删除了该定义后,问题得到解决。此外,作者还指出了默认的PersistenceAnnotationBeanPostProcessor的注册方式,并提供了自定义该bean定义的方法。
我发现了错误原因,仅当我手动定义时才会发生PersistenceAnnotationBeanPostProcessor
:
@Bean
public PersistenceAnnotationBeanPostProcessor persistenceAnnotationBeanPostProcessor() {
// enable injection of EntityManager to beans with @PersistenceContext annotation
return new PersistenceAnnotationBeanPostProcessor();
}
很抱歉,因为我没有在问题中发布完整的代码(因为我认为这个bean没关系)。当我删除此定义时,一切都会按预期进行。我还发现在我的情况下该bean已经被注册:
注意:默认的PersistenceAnnotationBeanPostProcessor将通过“ context:annotation-
config”和“ context:component-scan”
XML标签进行注册。如果要指定自定义PersistenceAnnotationBeanPostProcessor
bean定义,请删除或关闭那里的默认注释配置。
(来自的引用评论org.springframework.orm/src/main/java/org/springframework/orm/jpa/support/PersistenceAnnotationBeanPostProcessor.java
)