2

我正在尝试仅使用 XML 语法配置 spring,并遇到将本机资源异常转换为DataAccessException. 根据文档,我总是需要放置@Repository存储库 bean 并声明PersistenceExceptionTranslationPostProcessorbean。我认为这应该是使用 AOP 定义某种过滤器的方法,该过滤器将执行异常翻译,但在文档中找不到类似的东西。这个想法是引入约定,例如“对于以 Dao 结尾的所有内容都应用本地异常翻译”。有任何想法吗?

4

1 回答 1

0

类似于 @Repository 注释 spring xml 配置看起来像:

    <?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>

切入点 "within(org.example.spring.dao..*Dao)" 将拦截器应用于位于包 org.example.spring.dao 的类中的方法,其子包以 "Dao" 后缀结尾

于 2014-03-31T09:27:39.237 回答