Spring@Repository@Service@Controller注解的区别
Posted 幽灵雾
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring@Repository@Service@Controller注解的区别相关的知识,希望对你有一定的参考价值。
【提问】
Spring的注解中,@Repository、@Service、@Controller注解有什么区别?
【解答】
三者均是@Component的派生注解,目的均是将类标记为需要构造并注入的Bean,@Repository,@Service,@Controller三者是用来标记一些特殊功能和用途的,并能够为编码进行明确的分层结构,为第三方框架留了很多的想象空间。
可以简单理解为:
@Repository、@Service,@Controller = {@Component +一些其他特殊功能}
具体区别:
1、标记用途不同
@Component 用来注解通用组件类
@Repository 用来注解持久层组件类,表示该组件用于对数据存储的处理
@Service 用来注解业务逻辑层组件类,表示该组件用于对业务逻辑的处理
@Repository 用来注解表现层组件类,表示该组件用于对交互展示的处理
2、附加功能不同
@Repository 能将所标注的类中抛出的数据访问异常封装为Spring的数据访问异常类型:Spring DataAccessException
@Service,@Controller原声的Spring暂未对其做特殊处理
以上是关于Spring@Repository@Service@Controller注解的区别的主要内容,如果未能解决你的问题,请参考以下文章