zoukankan      html  css  js  c++  java
  • IDEA提示推进使用构造器注入

    起源

    最近使用IDEA写代码时候,IDEA总是会提示不推荐使用字段注入,然后今日看到一篇文章恰好讲这个,故此记录下。

    我对阅读的文章拿思维导图做了个总结,内容如下:

    注入方式

    构造器注入

    Before Spring 4.3, we had to add an annotation to the constructor. With newer versions, this is optional if the class has only one constructor.
    Spring4.3版本以前必须手动在构造器上写注解,之后版本如果只有一个构造器可以缺省。

    #构造器注入
    @Component
    class Cake {
      private Flavor flavor;
    
      Cake(Flavor flavor) {
      //注入时可校验
        Objects.requireNonNull(flavor);
        this.flavor = flavor;
      }
    
      Flavor getFlavor() {
        return flavor;
      }
      ...
    }

    setter注入

    @Component
    class Cookie {
    
      private Topping toppings;
    
      @Autowired
      void setTopping(Topping toppings) {
        this.toppings = toppings;
      }
    
      Topping getTopping() {
        return toppings;
      }
      ...
    }

    字段注入

    //实际项目中用的最多,但是idea最近开始提示不推荐。
    @Component
    class IceCream {
    
      @Autowired
      private Topping toppings;
    
      Topping getToppings() {
        return toppings;
      }
    
      void setToppings(Topping toppings) {
        this.toppings = toppings;
      }
    }

    总结

    实际项目开发中,我经常会遇到第二个问题。依靠字段注入,然后引入了很多属性。如果这种方式切换到构造器注入,明显参数过长,典型的代码异味。所以我对文章作者提出的观点是认同的。





    网络知识搬运/梳理小工
  • 相关阅读:
    周记
    周记
    代码复审核查表
    两人合作的案例and周记
    第一周周记
    15 手写数字识别-小数据集(2)
    11.分类与监督学习,朴素贝叶斯分类算法
    15 手写数字识别-小数据集
    14 深度学习-卷积
    十二次作业
  • 原文地址:https://www.cnblogs.com/aibilim/p/4c16e9fa77235a8f2f3103c06187684f.html
Copyright © 2011-2022 走看看