Spring深度解析-21、Spring各种依赖注入的注解区别

Spring和注入相关的常见注解有Autowired、Resource、Qualifier、Service、Controller、Repository、Component。

1、
@Autowired是自动注入,自动从spring的上下文找到合适的bean来注入
@Autowired(required=true)表示必须找到匹配的Bean,否则将报异常。

注意:用来标记属性

@Autowired
private UserDao userDao;

2、
@Resource要求提供一个Bean名称的属性,如果属性为空,自动采用标注处的变量名和方法名作为Bean的名称 。

@Resource默认按名称匹配注入Bean.

注意:用来标记属性

@Resource(name = "userServiceImpl")
 private UserService userService;

3、
@Qualifier 指定注入bean的名称
比如,在Controller层中注入Service,名称为Service的实现类。

注意:用来标记属性

 @Autowired
 @Qualifier("userServiceImp")
 private UserSerevice userService;

4、
@Service,@Controller,@Repository分别标记类是Service层,Controller层,Dao层的类,spring扫描注解配置时,会标记这些类要生成bean。

@Repository用于标注数据访问组件,即DAO组件

@Service,@Controller 这些注解要放在接口的实现类上,而不是接口上面。
5、
@Component是一种泛指,标记类是组件,spring扫描注解配置时,会标记这些类要生成bean。

你可能感兴趣的:(死磕spring源码)