@Resource 和 @Autowired 的区别
@Resource
只能放在属性上,表示先按照属性名匹配 IOC 容器中对象 id 给属性注入值若没有 成功,会继续根据当前属性的类型匹配 IOC 容器中同类型对象来注入值
若指定了 name 属性@Resource(name = “对象 id”),则只能按照对象 id 注入值。
@Autowird
放在属性上:表示先按照类型(byType)给属性注入值如果 IOC 容器中存在多个与属性同类 型的对象,则会按照属性名(byName)注入值
也可以配合@Qualifier(“IOC 容器中对象 id”)注解直接按照名称注入值。
放在方法上:表示自动执行当前方法,如果方法有参数,会自动从 IOC 容器中寻 找同类型的对象给参数传值
也可以在参数上添加@Qualifier(“IOC 容器中对象 id”)注解按照名称寻找对象给 参数传值。
@Qualifier 使用场景:
@Qualifier(“IOC 容器中对象 id”)可以配合@Autowird 一起使用, 表示根据指定 的 id 在 Spring 容器中匹配对象