@Repository的XML替代,用于DataAccessException的转换本机异常

时间:2012-04-30 06:57:00

标签: spring exception

我试图仅使用XML语法配置spring,并且遇到了将本机资源异常转换为DataAccessException的问题。根据文档,我总是需要将@Repository放在存储库bean上并声明PersistenceExceptionTranslationPostProcessor bean。我认为这应该是使用AOP定义某种过滤器的方法,它将执行异常翻译但在文档中找不到这样的东西。我们的想法是引入约定,例如“为Dao应用原生异常翻译而结束的一切”。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

类似于@Repository annotaion spring xml config看起来像:

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop"
           xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd">
...
        <bean id="translationInterceptor" class="org.springframework.dao.support.PersistenceExceptionTranslationInterceptor" />

        <aop:config>
            <aop:advisor advice-ref="translationInterceptor" pointcut="within(org.example.spring.dao..*Dao)" />
        </aop:config>
...
    </beans>

Pointcut“(org.example.spring.dao .. * Dao)”将拦截器应用于包org.example.spring.dao中的类中的方法,其子包以“Dao”后缀结尾