Spring - 为啥我们需要标记一个类@repository(或@Component以外的任何东西)[重复]
Posted
技术标签:
【中文标题】Spring - 为啥我们需要标记一个类@repository(或@Component以外的任何东西)[重复]【英文标题】:Spring - Why do we need mark a class @repository(or whatever other than @Component) [duplicate]Spring - 为什么我们需要标记一个类@repository(或@Component以外的任何东西)[重复] 【发布时间】:2015-06-21 18:26:41 【问题描述】:我正在努力学习Spring in Detail
,所以在我的示例中我有一个DAO
@Repository
public class EmployeeDAOImpl implements EmployeeDAO
...
它工作正常,但@Component
也一样工作正常,没有任何问题
@Component
public class EmployeeDAOImpl implements EmployeeDAO
...
那么我为什么要标记我的
具有@Repository
的类,除了持久层的刻板印象之外还有其他优势吗?
【问题讨论】:
我永远不会同意downvoter,当我们用@Repository
注释一个类时,我们会得到更多的东西,让我找到答案
当与 org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor
PersistenceExceptionTranslationPostProcessor
结合使用时,带有 @Repository 注释的类符合 Spring DataAccessException
转换的条件。
【参考方案1】:
看Repository
的源码那也是Component
@Component
public @interface Repository ...
它只是为了明确组件/bean的用途。
同样Service
和Controller
也是用于服务和控制器的Component
。
【讨论】:
以上是关于Spring - 为啥我们需要标记一个类@repository(或@Component以外的任何东西)[重复]的主要内容,如果未能解决你的问题,请参考以下文章
为啥我们需要将 Swift 类标记为 `public` 或 `open` 以使其在 Objective-C 框架项目中可访问?
为啥我们不能在 kotlin 中将类的可见性标记为“受保护”?
#pragma 标记的意义是啥?为啥我们需要#pragma 标记?