Spring 的核心是Ioc容器和DI(Dependence Injection)思想,这些提供了 java 对象的管理以及他们之间依赖的管理。bean 的管理是Spring自动管理的,而我们只需要使用一些注解(Annotion)。
常用的是 @Resource 和 @Autowired 以及 lambok 的构造器进行注入。
使用
注入前对象必须由 Spring 管理。通过 @Component、@Service、@Repository 标识,Springboot会自动扫描并初始化 Bean。
@Autowired
@Autowired
private UserMapper userMapper;
如果Bean出现了重复,在项目中通常使用@Qualifier单独指定bean. 注意: @Qualifier不能单独使用只能配合@Autowired使用。
@Autowired
@Qualifier(value = "userMapper")
private UserMapper userMapper;
@Autowired 可以放在成员变量(field),setter、类构造器。它只有一个属性 —— required,Boolean类型,取值为false时不依赖bean,也就是说被注入field可以为null,否则当依赖bean不存在时报错。
// Autowired 构造器注入
class UserServiceImpl{
private UserMapper userMapper;
private DeptMapper deptMapper;
@Autowired
public UserServiceImpl(UserMapper userMapper, DeptMapper deptMapper){
this.userMapper = userMapper;
this.deptMapper = deptMapper;
}
}
// Autowired Setter 注入
class UserServiceImpl{
private UserMapper userMapper;
@Autowired
public void