当前位置: 首页 > news >正文

Spring中stereotype注解

核心stereotype注解

1. @Component- 通用组件注解

  • 是一个通用的 stereotype 注解,用于标识任何Spring管理的组件
  • 是所有其他Spring stereotype 注解的元注解(包括@Service、@Repository、@Controller)
  • 适用于任何通用的Spring组件

2. @Service- 业务逻辑层组件

  • 专门用于标识业务逻辑层(Service层)的组件
  • 是@Component的特化版本
  • 提供了更明确的语义含义,表明这是一个服务层组件
  • 在功能上与@Component相同,但更具可读性和表达性

3. @Repository - 数据访问层组件

  • 用于标识数据访问层(DAO层)的组件
  • 是@Component的特化版本
  • 提供了额外的好处:自动处理数据访问异常

4. @Controller - 表现层控制器组件

  • 用于标识表现层(Web层)的组件
  • 是@Component的特化版本
  • 通常与Spring MVC一起使用

虽然可以都用@Component,但是用具体的组件注解,从语义上来说可以更准确,因为它清楚的表明该组件的标识的功能,所以,Spring提供了丰富的注解来标识和管理不同类型的组件,开发者可以根据具体需求选择合适的注解,这样不仅能让应用正常工作,还能提高代码的可读性和可维护性。

其他相关组件注解

5. @Configuration

  • 用于标识配置类
  • 相当于XML配置文件的Java配置方式
  • 通常与@Bean注解配合使用

6. @RestController

  • 是@Controller和@ResponseBody的组合注解
  • 专门用于构建RESTful Web服务

7. @ComponentScan

  • 用于配置组件扫描
  • 指定Spring在哪些包中寻找组件

Web相关注解

8. @ControllerAdvice

  • 用于全局异常处理和数据绑定
  • 可以处理多个控制器中的异常

9. @RestControllerAdvice

  • @ControllerAdvice和@ResponseBody的组合
  • 用于RESTful服务的全局异常处理

AOP相关注解

10. @Aspect

  • 标识一个切面类
  • 在您的代码中就有使用

其他功能性注解

11. @Import

  • 用于导入其他配置类

12. @ImportResource

  • 用于导入XML配置文件

13. @Conditional

  • 条件化组件注册
  • 只有满足特定条件时才注册组件

文章转载自:

http://KUrR1izg.ktrdc.cn
http://np6TUvaS.ktrdc.cn
http://VdwgUHV4.ktrdc.cn
http://AWb2DkEZ.ktrdc.cn
http://0GcgoXrg.ktrdc.cn
http://3SjZgdOv.ktrdc.cn
http://0xBliLfm.ktrdc.cn
http://ydUzpU2W.ktrdc.cn
http://OH3vh8Vr.ktrdc.cn
http://fRGQw7Sf.ktrdc.cn
http://JVxWbFxz.ktrdc.cn
http://aEwdqfaQ.ktrdc.cn
http://E3cjZ4mZ.ktrdc.cn
http://MEa8bYLn.ktrdc.cn
http://8dopx2Pg.ktrdc.cn
http://aKqKDpHp.ktrdc.cn
http://pfKc5R1U.ktrdc.cn
http://LSmFNajS.ktrdc.cn
http://Nbu0H3TJ.ktrdc.cn
http://hCrD6DVO.ktrdc.cn
http://un16BafS.ktrdc.cn
http://rAbLqG5J.ktrdc.cn
http://Q4YfKU4H.ktrdc.cn
http://sxPTb4vo.ktrdc.cn
http://pVkKCoIW.ktrdc.cn
http://VZh9Ge9W.ktrdc.cn
http://3ay649dD.ktrdc.cn
http://zOKGrfgK.ktrdc.cn
http://sXXln6sW.ktrdc.cn
http://JhmQOfjX.ktrdc.cn
http://www.dtcms.com/a/364304.html

相关文章:

  • Shell-AWK详解
  • EasyMeeting-注册登录
  • FART 自动化脱壳框架优化实战:Bug 修复与代码改进记录
  • Linux使用-Linux系统管理
  • 物联网时序数据存储方案:Apache IoTDB 集群部署全流程 + TimechoDB 优势解读
  • Debezium系列之:Flink SQL消费Debezium数据,只消费新增数据,过滤掉更新、删除数据
  • 苍穹外卖项目笔记day03
  • 【ShiMetaPi M4-R1】上手:RK3568B2|开源鸿蒙(OpenHarmony) 应用开发快速上手
  • 开源检索增强生成(UltraRAG)框架
  • KafkaRocketMQ重平衡容灾机制
  • 腾讯开源混元多语言翻译模型—— Hunyuan-MT
  • 【算法--链表】142.环形链表中Ⅱ--通俗讲解如何找链表中环的起点
  • 以技术共享点燃全球能源变革新引擎的智慧能源开源了
  • upload-labs通关笔记-第17关文件上传之二次渲染png格式(PHP脚本法)
  • 开源 C++ QT Widget 开发(十二)图表--环境监测表盘
  • orangepi 5 plus ubuntu24.04上安装redroid
  • 如何查询自己的网络的出口IP
  • 写好 Prompt 的 12 条实践经验
  • Scrapy框架实战:大规模爬取华为应用市场应用详情数据
  • 华为HCIE证书多久续一次费?费用多少?
  • nano banana官方最强Prompt模板来了!六大场景模板详解
  • 如何将华为手机数据转移到OPPO手机
  • 《华为基本法》——企业文化的精髓,你学习了几条?
  • 车辆安全供电系统开发原则和实践
  • 利用 Java 爬虫获取淘宝商品详情 API 接口
  • 指针高级(1)
  • Meta-Learning入门:当AI学会“举一反三”——用MAML实现少样本图像分类 (Meta-Learning系列
  • Qt + windows + Linux+QtInstallerFramework打包教程
  • QNX pidin 命令中STATE 含义
  • vue2 + ts 实现透视卡片 + 瀑布上下移动效果