spring系列之——使用@Autowired注解,不建议基于字段的依赖注入

介绍

使用@Autowired注解基于字段的依赖注入时,IDEA会出现弱警告,如下: 

spring系列之——使用@Autowired注解,不建议基于字段的依赖注入_第1张图片

 spring系列之——使用@Autowired注解,不建议基于字段的依赖注入_第2张图片

 思考:为什么不推荐使用,这种方式是不是有更好的替代方案。

依赖注入方式

依赖注入有三种方式:

  • 基于字段注入
  • 基于构造器注入
  • 基于set方法注入

1、基于字段注入

@Service
public class EmployeeServiceImpl implements EmployeeService {
    @Autowired
    private EmployeeMapper employeeMapper;
}

优点:

  1. 注入方式简单:字段上附上注解@AutoWired即可。
  2. 可观性强:整体代码简洁明了。

缺点:

  1. 无法用于final修饰的变量
    final类型的变量在调用class的构造函数的这个过程当中就得初始化完成,这个是基于字段的依赖注入做不到的地方,只能使用基于构造函数的依赖注入的方式.
  2. 掩饰单一职责的设计思想
    如果采用的是基于构造函数的依赖注入来使用Spring的IOC,当你注入的太多的时候,这个构造方法的参数就会很庞大,类似于下面。当你看到这个类的构造方法那么多参数的时候,你自然而然

你可能感兴趣的:(spring,Java学习,spring,java,spring,boot)