Java中可以用注解来指定类或者方法的属性。
注解的概念比较接近于标签。
本文主要讨论SSM项目中常用的标签@Resource和@Autowired
@Autowired是Spring的自动装配注解,可以对类成员变量、方法及构造函数进行标注,完成自动装配的工作。而@Resource注解是J2EE基于JSR-250规范的注解,和@Autowired一样起到自动装配的作用。两者的区别如下:
- @Autowired与Resource注解都可以用来装配bean,都可以写在成员变量上,或写在参数的setter方法上。
- @Autowired注解默认按照类型装配,在默认情况下要求依赖对象必须存在,如果要允许null值,可以设置它的required属性为false,如@Autowired(required=false)。如果想使用名称装配可以结合使用@Qualify注解。
- @Resource默认按名称进行装配,名称可以通过name 属性进行指定,如果没有指定name 属性,当注解写在 setter 方法上默认取属性名进行装配。当找不到与名称匹配的bean时才安照类型进行匹配。但是需要注意的是,name 属性一旦指定,只安照名称进行装配。