gpt4 book ai didi

java - 通过 XML 在 Spring 上配置存储库

转载 作者:行者123 更新时间:2023-12-02 06:00:08 25 4
gpt4 key购买 nike

我已经在互联网上冲浪了几个小时,试图找到一个很好的例子来通过使用 XML 而不是注释(@Repository)来配置 Spring 的存储库。

我发现了一些好东西(Hibernate 3):

<!-- Hibernate interceptor to manage the session outside any transaction scope. -->
<bean id="hibernateInterceptor"
class="org.springframework.orm.hibernate3.HibernateInterceptor">
<property name="sessionFactory" ref="sessionFactory"/>
</bean>

<!-- The configuration DAO -->
<bean id="configurationDAO"
class="org.springframework.aop.framework.ProxyFactoryBean">
<property name="target" ref="configurationDAOTarget"/>
<property name="proxyInterfaces" value="org.itracker.persistence.dao.ConfigurationDAO"/>
<property name="interceptorNames">
<list>
<value>hibernateInterceptor</value>
</list>
</property>
</bean>

<bean id="configurationDAOTarget"
class="org.itracker.persistence.dao.ConfigurationDAOImpl">
<property name="sessionFactory" ref="sessionFactory"/>
</bean>

但是 Hibernate 4 似乎不再支持 HibernateInterceptor

大家有遇到过这个问题吗?有好的解决方案吗?除了使用注释之外没有其他选择吗?

提前致谢。

最佳答案

所有@Repository所做的就是元注释@Component并让org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor创建一个AOP执行异常转换的代理。在这个级别上,它完全独立于 Hibernate。然后,不同的实现了解它们自己的异常并转换为公共(public) Spring DataAccessException 层次结构。

就使用 XML 执行此操作而言,您必须以某种方式将该代理应用于您关心的 DAO bean。看看reference手册,但这会很痛苦,而且不会给你带来太多好处。

为了完整起见,您可以将注释从 @Repository 更改为其他内容,但当我读到您的问题时,您根本不想使用注释。

关于java - 通过 XML 在 Spring 上配置存储库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22742147/

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