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

@component注解的分类

@Component作用类似于xml文件里面的<Bean>:交给IOC去创建相关的实体类对象;

 如果用xml配置的话,还要在xml配置文件中添加<context:component-scan  base-package=”扫描范围路径”>

@Component有三个主要的衍生注解,它们分别用于标记不同类型的组件,以更好地区分组件的用途和层次。这三个衍生注解分别是:

  1. @Controller
    • 用途:用于标注控制层组件,即MVC模式中的控制器(Controller)。它主要负责处理由前端发起的请求,并返回相应的视图或数据给前端。
    • 特点:被@Controller注解的类,其方法通常处理HTTP请求,并返回相应的视图名称或数据。
    • 使用场景:在Web应用中,用于处理用户请求和响应。
  2. @Service
    • 用途:用于标注服务层组件,即业务逻辑层(Service Layer)。它主要负责处理具体的业务逻辑,可能会调用数据访问层(DAO)组件来访问数据库。
    • 特点:被@Service注解的类,通常包含多个业务方法,这些方法实现了具体的业务逻辑。
    • 使用场景:在业务逻辑处理中,用于封装复杂的业务逻辑。
  3. @Repository
    • 用途:用于标注数据访问层组件,即DAO(Data Access Object)组件。它主要负责与数据库进行交互,执行数据的增删改查操作。
    • 特点:被@Repository注解的类,通常包含多个与数据库交互的方法,这些方法实现了数据的持久化操作。
    • 使用场景:在需要访问数据库的场景中,用于封装数据访问逻辑。

这三个衍生注解的作用和@Component一样,都是将类标记为Spring容器中的组件,使其能够被Spring容器管理和自动扫描。但是,它们各自有不同的用途和标记的层次,以便于在大型项目中更好地组织和管理代码。

此外,需要注意的是,虽然@Component是一个通用的注解,可以用于任何类,但在实际开发中,推荐根据类的职责和层次,选择适当的衍生注解进行标记,以提高代码的可读性和可维护性。

相关文章:

  • 【手写数据库内核组件】0201 哈希表hashtable的实战演练,多种非加密算法,hash桶的冲突处理,查找插入删除操作的代码实现
  • uni-app三部曲之三: 路由拦截
  • 【系统架构设计】计算机组成与体系结构(一)
  • alibaba EasyExcel 简单导出数据到Excel
  • 创建vue3项目
  • 侯捷C++面向对象高级编程(上)-9-扩展补充:类模板、函数模板及其他
  • 哪些独立站外链策略最有效?
  • 压测jmeter 插件 之 tps和响应时间图
  • mysql 一主多从环境搭建
  • (C++哈希表01)
  • java springboot监听事件和处理事件
  • C#委托事件的实现
  • RNN文献综述
  • CC2530寄存器编程学习笔记_点灯
  • C编程使用clock函数实现计算一段代码的执行时间:毫秒单位
  • 收藏网友的 源程序下载网
  • CAP理论的例子讲解
  • ES6系统学习----从Apollo Client看解构赋值
  • iOS动画编程-View动画[ 1 ] 基础View动画
  • TiDB 源码阅读系列文章(十)Chunk 和执行框架简介
  • vue2.0一起在懵逼的海洋里越陷越深(四)
  • win10下安装mysql5.7
  • 表单中readonly的input等标签,禁止光标进入(focus)的几种方式
  • 给初学者:JavaScript 中数组操作注意点
  • 回顾2016
  • 前端存储 - localStorage
  • 学习笔记:对象,原型和继承(1)
  • 职业生涯 一个六年开发经验的女程序员的心声。
  • C# - 为值类型重定义相等性
  • ​【已解决】npm install​卡主不动的情况
  • #Linux(Source Insight安装及工程建立)
  • #常见电池型号介绍 常见电池尺寸是多少【详解】
  • #数据结构 笔记一
  • (1)(1.9) MSP (version 4.2)
  • (3)nginx 配置(nginx.conf)
  • (javaweb)Http协议
  • (WSI分类)WSI分类文献小综述 2024
  • (笔记)Kotlin——Android封装ViewBinding之二 优化
  • (第61天)多租户架构(CDB/PDB)
  • (二十六)Java 数据结构
  • (力扣题库)跳跃游戏II(c++)
  • (每日持续更新)信息系统项目管理(第四版)(高级项目管理)考试重点整理 第13章 项目资源管理(七)
  • (十三)Java springcloud B2B2C o2o多用户商城 springcloud架构 - SSO单点登录之OAuth2.0 根据token获取用户信息(4)...
  • (转)GCC在C语言中内嵌汇编 asm __volatile__
  • (转)Sublime Text3配置Lua运行环境
  • (转)原始图像数据和PDF中的图像数据
  • .Net 6.0 处理跨域的方式
  • .NET 8.0 中有哪些新的变化?
  • .NET Compact Framework 3.5 支持 WCF 的子集
  • .Net Core/.Net6/.Net8 ,启动配置/Program.cs 配置
  • .NET 命令行参数包含应用程序路径吗?
  • .NET 药厂业务系统 CPU爆高分析
  • .NET/C# 判断某个类是否是泛型类型或泛型接口的子类型
  • .NET6 命令行启动及发布单个Exe文件
  • .NET项目中存在多个web.config文件时的加载顺序