@Resource
默认是byName注入,它有两个属性name和type
这个注解是JSR规范,所以比spring专有的@Autowired更值得推荐
@Autowired默认是byType注入
一般情况下都是把这两个注解放在成员对象上面
使用@Autowired如果有多个类型bean 符合条件,就使用
@Qualifier在形参限制指定bean的id
如果没有bean符合
就使用@Autowired(required=false)防止报错
@Resource=@Autowired+@Qualifier
@component是比较通用的注解
对于现在广泛使用的mvc架构,spring也提出了应用于不同层次的注解
@Repository 持久层
@Service 服务层
@Controller 控制层或者说业务逻辑层
请注意:注解是不干任何事的,他们只是一个标识,首先你需要使用
扫描包和递归子包,知道这个包下的注解情况
然后使用
这个注解向容器中添加了
AutowiredAnnotationBeanPostProcessor、CommonAnnotationBeanPostProcessor、 PersistenceAnnotationBeanPostProcessor以及RequiredAnnotationBeanPostProcessor
这4个BeanPostProcessor。他们是真正干活的,不同的注解标识的类就用不同的BeanPostProcessor去处理