Spring的三种注入方式的优缺点分析

在 Spring 中,提供了三种依赖注入(也被称之为 "对象注入","属性装配"等)的方式,这篇博客我们来分析一下这三种方式各有哪些优缺点。

一、属性注入

优点

简洁,使用方便。

缺点

▪ 只能用于 IoC 容器,如果是非 IoC 容器不可用,并且只有在使用的时候才会出现 NPE(空指

针异常);

▪ 不能注入⼀个 Final 修饰的属性。

二、构造函数注入

此方式推荐 Spring 4.X 进行使用

优点

▪ 可以注入 final 修饰的属性;

▪ 注入的对象不会被修改;

▪ 依赖对象在使用前,一定会被完全初始化,因为依赖是在类的构造方法中执行的,而构造方法

是在类加载阶段就会执行的方法;

▪ 通用性好, 构造方法是 JDK 支持的, 所以更换任何框架,他都是适用的。

缺点

▪ 注入多个对象时, 代码会比较繁琐。

三、Setter注入

此方式推荐 Spring 3.X进行使用

优点

方便在类实例之后, 重新对该对象进行配置或者注⼊

缺点

▪ 不能注入⼀个 Final 修饰的属性

▪ 注入对象可能会被改变, 因为 setter 方法可能会被多次调⽤, 就有被修改的风险。

你可能感兴趣的:(JavaEE,spring,java,后端,java-ee,springboot,intellij-idea,eclipse)