DI :依赖注入(创建对象,并给属性赋值的意思)
DI实现方式有两种
1.在spring的配置文件中,使用标签和属性完成,叫做基于xml的DI实现2.
2.使用spring中的注解,完成属性赋值,叫做基于注解的DI实现
基于xml注入有以下几种方式
1.set注入 (设值注入):spring调用类的set方法,在set方法可以完成属性的赋值【80%人使用】。
2.构造注入:spring调用类的构造器,创建对象,在构造中赋值。
基于注解注入有以下几种方式
1 属性注入
@Service
public class BService {
@Autowired
AService aService;
//...
}
2 set 方法注入
set 方法注入太过于臃肿,实际上很少使用
@Service
public class BService {
AService aService;
@Autowired
public void setaService(AService aService) {
this.aService = aService;
}
}
3 构造方法注入
@Service
public class AService {
BService bService;
@Autowired
public AService(BService bService) {
this.bService = bService;
}
}
如果类只有一个构造方法,那么 @Autowired 注解可以省略;如果类中有多个构造方法,那么需要添加上 @Autowired 来明确指定到底使用哪个构造方法。
官方推荐构造方法注入