-
自动导入对象到类中,被注入进的类同样要被 Spring 容器管理
-
默认情况下必须要求依赖对象必须存在,如果要允许null值,可以设置它的required属性为false,例如:@Autowired(required=false)
-
@Autowired按byType自动注入
@Service
public class UserServiceImpl implements UserService{
...
}
@RestController
@RequestMapping("/users")
public class UserController{
@Autowired(required=false)
private USerService userService;
}
@Qualifier
- 根据名称进行注入。这个@Qualifier 注解的使用,和上面@Autowired 一起使用
- 如果容器中有一个以上匹配的Bean,则可以通过@Qualifier注解限定Bean的名称
@Repository(value="userDaoImpl1")
public class UserDaoImpl implements UserDao {
………
}
@Service
public class UserService{
@Autowired //根据类型进行注入
@Qualifier(value = "userDaoImpl1") //根据名称进行注入
private UserDao userDao;
}
@Resource
- 可以根据类型注入,可以根据名称注入
@Repository(value="userDaoImpl1")
public class UserDaoImpl implements UserDao {
………
}
@Service
public class UserService{
//@Resource //根据类型进行注入
@Resource(name = "userDaoImpl1") //根据名称进行注入
private UserDao userDao;
}
@Value
- 注入普通类型属性
@Value(value = "abc") private String name;
(1)支持如下方式的注入:
注入普通字符 注入操作系统属性 注入表达式结果 注入其它bean属性 注入文件资源 注入网站资源 注入配置文件
(2)@Value三种情况的用法。
${}是去找外部配置的参数,将值赋过来
#{}是SpEL表达式,去寻找对应变量的内容
#{}直接写字符串就是将字符串的值注入进去



