@Autowire与@Resource区别

spring提供两种annotation方式进行装配:

@Autowire与@Resource方式装配,区别是:

@Autowire  default by type,默认情况下它要求依赖对象必须存在如果允许为null,可以设置它required属性为false,如果我们想使用按照名称装配,可以结合@Qualifier注解一起使用;


@Resource  default by name,当找不到与name匹配的bean才会按照type装配,可以通过name属性指定,如果没有指定name属性,当注解标注在字段上,即默认取字段的名称作为bean名称寻找依赖对象,当注解标注在属性的setter方法上,即默认取属性名作为bean名称寻找依赖对象.

注意:如果没有指定name属性,并且按照默认的名称仍然找不到依赖的对象时候,会回退到按照类型装配,但一旦指定了name属性,就只能按照名称装配了.

开发过程中建议用@Resource

你可能感兴趣的:(java,spring)