• 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进行分类,并且根据图层约定选择注记总是更好。

  • 相关阅读:
    vim 从嫌弃到依赖(23)——最后的闲扯
    Java:你会建议用Java开发金融科技应用程序吗?
    超好用的excel异步导入导出组件
    基于java的动漫网购商城【原创】
    k8s 资源管理
    Mxnet速查_CPU和GPU的mnist预测训练_模型导出_模型导入再预测_导出onnx并预测
    排序。。。。
    【C++ • STL • 力扣】详解string相关OJ
    以太坊合并升级的全面介绍
    Java学习Day017(第三章:流程控制—选择结构与循环结构笔记)
  • 原文地址:https://blog.csdn.net/allway2/article/details/127129910