Spring ---三种注入方式
2022-02-17 18:06
435 查看
循环依赖这个问题,按理说我们在日常的程序设计中应该避免,其实这个本来也是能够避免的。不过由于总总原因,我们可能还是会遇到一些循环依赖的问题,特别是在面试的过程中,面试考察循环依赖,主要是想考察候选人对 Spring 源码的熟悉程度,因为要把循环依赖这个问题解释清楚,涉及到不少 Spring 源码。
问题比较庞大,今天先来聊聊实例的注入方式。
1. 实例的注入方式
首先来看看 Spring 中的实例该如何注入,总结起来,无非三种:
- 属性注入
- set 方法注入
- 构造方法注入
我们分别来看下。
1.1 属性注入
属性注入是大家最为常见也是使用最多的一种注入方式了,代码如下:
@Service public class BService { @Autowired AService aService; //... }
这里是使用
@Autowired注解注入。另外也有
@Resource以及
@Inject等注解,都可以实现注入。
不过不知道小伙伴们有没有留意过,在 IDEA 里边,使用属性注入,会有一个警告:
不推荐属性注入!
1.2 set 方法注入
set 方法注入太过于臃肿,实际上很少使用:
@Service public class BService { AService aService; @Autowired public void setaService(AService aService) { this.aService = aService; } }
这代码看一眼都觉得难受,坚决不用。
1.3 构造方法注入
构造方法注入方式如下:
@Service public class AService { BService bService; @Autowired public AService(BService bService) { this.bService = bService; } }
如果类只有一个构造方法,那么
@Autowired注解可以省略;如果类中有多个构造方法,那么需要添加上
@Autowired来明确指定到底使用哪个构造方法。
2. 小结
日常开发应该还是属性注入较多代,码该咋写还咋写,Spring 官方的态度了解一下即可,当然,如果项目允许,也不妨试试 Spring 推荐的代码规范。
相关文章推荐
- Spring的注入方式(三种)
- Spring的三种注入方式?
- spring的依赖注入三种方式
- spring 依赖注入的三种实现方式
- spring——控制反转简单例子 (Spring三种注入方式)
- spring的三种依赖注入方式(080105)
- Spring定义bean的三种方式和自动注入
- Spring Bean三种注入方式
- spring的三种注入方式
- Spring依赖注入的三种实现方式
- Spring依赖注入的三种方式详解之三:工厂方法注入
- spring的三种注入方式:
- Spring bean的三种注入方式
- Spring学习(二)依赖注入的三种方式
- Spring学习(十八)Bean 的三种依赖注入方式介绍
- Spring IOC三种注入方式(接口注入、setter注入、构造器注入)
- Spring三种注入方式
- Spring IOC三种注入方式比较
- Spring的注入方式(三种)
- spring的依赖注入三种方式