Autowired和@区别详解_bean_延伸阅读@Autowired是什么
Autowired和@Resource注解的区别详解
来源不同
Autowired是Spring框架的亲儿子,它用来自动装配bean;而@Resource则是来自J2EE的老前辈,是JSR-250标准的一部分,主要负责资源的注入。
注入方式不同
Autowired默认是按照类型来装配的,也就是找到类型匹配的bean。如果不想让这个bean必须存在,可以设置required属性为false。要是想用名字来装配,那就得和@Qualifier注解一起用。而@Resource默认是按照名字来装配的,要是没有指定name属性,它会根据字段名或属性名来找bean。要是找不到名字匹配的bean,它会尝试按类型装配。
Autowired | @Resource |
---|---|
默认按类型装配 | 默认按名称装配 |
可通过@Qualifier指定名称 | 通过name属性指定名称 |
默认处理方式不同
如果Autowired找不到匹配的bean,它会抛出异常。而@Resource则会默认按名称装配,如果找不到,它会回退为按类型装配。
属性名不同
Autowired没有属性名,它是根据类型自动注入的;而@Resource有一个叫name的属性,可以通过这个属性来指定要注入的bean。
兼容性不同
Autowired只能在Spring框架中使用,而@Resource由于是J2EE的一部分,所以兼容性更好,可以在所有支持JSR-250的环境下使用。
延伸阅读
@Autowired是什么?
@Autowired是Spring框架提供的注解,用于实现依赖注入。它可以用于字段、构造器、setter方法和配置方法上。
@Resource是什么?
@Resource是J2EE提供的注解,是JSR-250标准的一部分,用于资源的注入。它可以用于字段和setter方法上,用于注入任何支持的资源类型的bean。