@Autowired/@Qualifer 组合
可以处理构造器注入和Setter注入
@Autowired写在构造器或set方法前,声明需要为其注入Bean对象
@Qualifer写在参数前面,声明注入Bean的id
@Autowired/@Qualifer也可以直接写在属性上,作用和写在set方法上类似,但是只会执行一行代码(赋值代码)
注意:如果注入的Bean对象是单例时,@Qualifer可省略,此时Spring按照参数类型匹配参数值(byType)
@Resource
只能处理Setter注入
@Resource也可以写在属性上,作用和写在set方法上类似,但是只会执行一行代码(赋值代码)
注意:注入对象是单例时,(name="标识符")可省略,此时Spring按照参数类型匹配参数值
问题:
@Autowired与@Resource的区别?
1.@Resource默认是按照名称来装配注入的,只有当找不到与名称匹配的bean才会按照类型来装配注入;
2.@Autowired默认是按照类型装配注入的,如果想按照名称来转配注入,则需要结合@Qualifier一起使用;
3.@Resource注解是由JDK提供,而@Autowired是由Spring提供;
4. @Resource和@Autowired都可以书写标注在字段或者该字段的setter方法之上
注入基本值或Spring表达式
@Value注解可以注入基本值或Spring表达式值
语法:
@Value("账单")
@Value("#{user.name}")
使用@ExceptionHandler注解实现异常处理
适合局部处理有"处理过程"的异常