如何在spring 3.0中注册自定义PersistenceAnnotationBeanPostProcessor

2024-01-03

我想重写 PersistenceAnnotationBeanPostProcessor,它在插入 context:component-scan 标记后立即注册。

我尝试注册一个同名的 bean,但 spring 仍然注册原始的后处理器 bean。

我的目标是提供 find Default EntityManager 方法的重写版本,该方法允许我在同一个容器中声明两个实体管理器。

注意:我有 2 EM 上下文在 spring 2.5.6 上运行,但是当迁移到 3.0.5.RELEASE 版本时它会被破坏。


我发现这个解决方法对我有用(Spring 3.2.7):

<bean id="org.springframework.context.annotation.internalPersistenceAnnotationProcessor"
class="org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor" >
<property name="defaultPersistenceUnitName" value="entityManagerFactory"/>
</bean> 

这将使用具有 defaultPersistenceUnitName 的新 PersistenceAnnotationBeanPostProcessor 覆盖 Spring 加载的默认 PersistenceAnnotationBeanPostProcessor。你have使用 Spring 自动加载此 bean 时使用的 bean 名称(这是默认行为)。我必须研究 org.springframework.context.annotation.AnnotationConfigUtils.registerAnnotationConfigProcessors() 才能找出这个名称。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在spring 3.0中注册自定义PersistenceAnnotationBeanPostProcessor 的相关文章

随机推荐