Spring - Why do we need mark a class @repository(or whatever other than @Component)
我正在学习Spring in Detail,所以在我的样本中我有一个DAO。
1 2 3 4
| @ Repository
public class EmployeeDAOImpl implements EmployeeDAO {
...
} |
它工作得很好,但同@Component一样,工作得很好,没有任何问题。
1 2 3 4
| @ Component
public class EmployeeDAOImpl implements EmployeeDAO {
...
} |
那我为什么要标记我的与@Repository类,除了持久层的原型之外还有其他的优点吗?
- 我绝不会同意下选者的观点,当我们用@Repository注释一个类时,我们会得到更多的东西,让我找出答案。
- 用@repository注释的类与org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessorPersistenceExceptionTranslationPostProcessor一起使用时,可以进行spring DataAccessException翻译。
看看Repository的源代码,它也是Component
它只是为了明确组件/bean的用途。
同样地,Service和Controller也是用于服务和控制器的Component。