如果我想使用Spring 3的基于Java的配置声明bean,我可以这样做:
@Configuration
public class MyConfiguration {
@Bean
public MyRepository myRepository() {
return new MyJpaRepository();
}
}
但是,由于我不能在此上下文中使用@Repository
注释,如何让Spring执行异常转换?
答案 0 :(得分:4)
将MyJpaRepository类声明为存储库:
@Repository
public class MyJpaRepository {
...
}
通过在Spring配置中设置component-scan元素,确保您的注释可被发现:
<context:component-scan base-package="org.example.repository"/>
由于您不希望根据注释在注释扫描中包含您的存储库,因此可以通过排除所有@Repository注释或您的特定类或包来过滤掉它。文档中有一个例子:
<context:component-scan base-package="org.example.repository">
<!-- use one or the other of these excludes, or both if you *really* want to -->
<context:exclude-filter type="regex" expression="*Repository"/>
<context:exclude-filter type="annotation"
expression="org.springframework.stereotype.Repository"/>
</context:component-scan>
Spring 3.0 documentation在3.10节中更详细地描述了这种配置。
通过将您的类配置为存储库,当您在Configuration类中将其作为Bean引出时,它将被指定为一个。