Spring中@Service 、@Component、@Repository等注解区别是什么?

 作者简介:大家好,我是码炫码哥,前中兴通讯、美团架构师,现任某互联网公司CTO,兼职码炫课堂主讲源码系列专题


代表作:《jdk源码&多线程&高并发》,《深入tomcat源码解析》,《深入netty源码解析》,《深入dubbo源码解析》,《深入springboot源码解析》,《深入spring源码解析》,《深入redis源码解析》等


联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬。码炫课堂的个人空间-码炫码哥个人主页-面试,源码等

回答

在 Spring 中,@Service@Component@Repository 都是用于用类表示为 Spring 容器中的 Bean。

从技术层面来讲,@Service@Repository 和 @Controller 都是 @Component 的衍生版本,他们主要在概念上面进行了优化,以体现特定的分层架构角色。

  • @Component 是 Spring 框架的基础注解,用于将类声明为 Bean 组件,使其受 Spring 容器管理。它可以用在任何层次的类上,并不限定它的应用层次。
  • @Service 用于表示业务逻辑层(Service)的类,尽管在功能上它和 @Component 没有本质的区别,但是它代表的是一个业务服务。在语义上,@Service 表示这个 Bean 的业务层服务。
  • @Repository 用于表示持久层(DAO),主要用于数据库访问和操作。它除了标注类外一个 DAO 外,还有一个核心功能:当持久层操作发生异常时,Spring 会将原始的数据库访问异常转换为 Spring 统一的数据访问异常(如 DataAccessException),从而解耦了业务逻辑和底层数据库异常的耦合关系,这种转换是的 Spring 数据库访问层能够更好地兼容各种数据库厂商的异常体系。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值