• Spring @Component、@Repository和@Service注释之间的区别


    在这个快速的文章中,我们将了解春季@Component,@Repository和@Service注释之间的区别 

    介绍

    在处理企业应用程序时,我们有多层或多模块架构,其中每个模块/层都有特定的角色。在基于春季的普通Web应用程序中,我们可以有以下层。

    1. 网页图层
    2. 介绍
    3. 服务
    4. 数据访问

    上面的列表是简单的列表,可以根据应用程序变得复杂。每一层都定义了自己的一组弹簧豆来执行工作。弹簧启动使用类路径扫描功能来检测这些 bean 并创建/加载它们。Spring框架提供了几个我可以根据用例使用的注释。在本文中,我们将仔细研究Spring框架中@Component,@Repository和@Service注释之间的区别

    在较高层面上,以下是这 3 个注释之间的区别:

    注解描述
    @Component任何弹簧管理组件的通用构造型
    @Repository持久层的构造型
    @Service服务层的构造型

    这些注释之间的主要区别在于分类,但最终它们几乎是相同的,我们可以使用一个来代替另一个,并且仍然可以按照我们的方式进行。

     

    1. @Component

    这是Spring框架提供的通用构造型注释。此注释表明该类是弹簧管理的 bean/ 组件。

    1. @Component
    2. public class ApplicationConfigurations{
    3. ...
    4. }

    [拉引号对齐=“正常”]弹簧仅扫描而不查找 和 。发生这种情况是因为它们使用 本身注释这些其他注释。[/拉引号]@Component@Service@Repository@Component

    1. @Component
    2. public @interface Service {
    3.  ….
    4. }
    5. @Component
    6. public @interface Repository {
    7.  ….
    8. }

    换句话说,我们可以说 和 是特殊类型的注释。@Service@Repository@Component

     

    2. @Repository

    此注释将弹簧豆分类为数据存储库。注释还会捕获特定于平台的异常,并重新抛出它们 特定于 Spring 的未选中异常。Spring提供了持久性例外翻译后处理器,类来处理这个问题。@Repository

    org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor

    此 Bean 后处理器将顾问程序添加到任何用 注释的 Bean 中。@Repository

     

    3. @Service

    用注释注释的 Java 类表明 Bean 是保存业务逻辑的服务层的一部分。此注释仅将 Bean 分类为服务级别 bean,并且没有像@Repository那样进行其他处理。@Service

     

    总结

    在这篇简短的文章中,我们看到了春季@Component,@Repository和@Service注释之间的区别。我们讨论了每个注释以及我们应该使用这些注释的区域。最后,这些注记几乎相似,几乎没有其他功能,但它们可以帮助我们对Bean进行分类,并且根据图层约定选择注记总是更好。

  • 相关阅读:
    【python基础】函数详解:编写函数、传递参数、使用位置实参、函数存储到模块中、函数编写指南
    【无标题】
    从零开始写 Docker(一)---实现 mydocker run 命令
    实验篇(7.2) 10. 扩充物理实验环境 ❀ 远程访问
    .NET Core中JWT+Auth2.0实现SSO,附完整源码(.NET6)
    【双链表增删查改接口的实现】
    剑指 Offer 61. 扑克牌中的顺子
    Scala语言基础(2)
    java计算机毕业设计小区车辆管理系统源程序+mysql+系统+lw文档+远程调试
    【改造中序遍历算法】 LCR 054. 把二叉搜索树转换为累加树
  • 原文地址:https://blog.csdn.net/allway2/article/details/127129910