Java 通过XML在Spring上配置存储库

Java 通过XML在Spring上配置存储库,java,spring,hibernate,Java,Spring,Hibernate,我在互联网上冲浪了好几个小时,试图找到一个很好的例子,通过使用XML而不是注释(@repository)来配置Spring的存储库 我发现了一些好东西(Hibernate 3): 冬眠受体 但是Hibernate4似乎不再支持HibernateInterceptor 你们中有人有过这方面的经验吗?一个好的解决方案?除了使用注释,没有其他选项了 提前感谢。所有@Repository都是对@组件进行元注释,并让org.springframework.dao.annotation.Persiste

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

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


冬眠受体
但是Hibernate4似乎不再支持
HibernateInterceptor

你们中有人有过这方面的经验吗?一个好的解决方案?除了使用注释,没有其他选项了


提前感谢。

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

就使用XML而言,您必须以某种方式将该代理应用于您关心的DAOBean。请看一下手册,但这将是痛苦的,不会给你带来太多好处


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

我是Spring和Hibernate的新手。我正在开发一个个人的“大”项目,将这两种技术结合起来,只是为了学习。从一开始,我的第一点是理解实现注释和XML,尽管我越往前走,就越相信注释是大多数开发人员的首选选项。争论通常是关于XML与基于注释的配置,即
@configuration
。反正都是空话。用最适合你的东西。一般来说,人们已经迁移到基于注释的配置,因为对于复杂的配置,它比XML更容易,对于简单的配置,它和XML一样简单,而且它的代码允许更好的重用和组合。为了回答您的问题,没有什么可以阻止您将
@Repository
与XML配置一起使用,请记住将PETPP声明为中的。
<!-- 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>