@Autowired与 @Resource

@Autowired, @Resource
1.注解类型:
Autowired可用于构造器、属性、方法、注解
@Target({ElementType.CONSTRUCTOR, ElementType.FIELD, ElementType.METHOD, ElementType.ANNOTATION_TYPE})
Resource可用于类、接口、注解、属性、方法
@Target({TYPE, FIELD, METHOD})
其中TYPE-->/** Class, interface (including annotation type), or enum declaration */
2.注解声明:
Autowired--> boolean required() default true;
Resource-->
String name() default "";
String lookup() default "";
Class type() default java.lang.Object.class;
enum AuthenticationType {CONTAINER,APPLICATION}
AuthenticationType authenticationType() default AuthenticationType.CONTAINER;
boolean shareable() default true;
String mappedName() default "";
String description() default "";
3.功能区别:
@Autowired默认按类型装配(这个注解是属业spring的),默认情况下必须要求依赖对象必须存在,如果要允许null 值,
可以设置它的required属性为false,如:@Autowired(required=false) ,如果我们想使用名称装配可以结合@Qualifier
注解进行使用,如下: 
@Autowired() @Qualifier("userDao")     
private UserDao userDao; 

@Resource(这个注解属于J2EE的),默认安照名称进行装配,名称可以通过name属性进行指定,如果没有指定name属性,
当注解写在字段上时,默认取字段名进行按照名称查找,如果注解写在setter方法上默认取属性名进行装配。 当找不到
与名称匹配的bean时才按照类型进行装配。但是需要注意的是,如果name属性一旦指定,就只会按照名称进行装配。


所有注解类型:ElementType:
/** Class, interface (including annotation type), or enum declaration */
TYPE,

/** Field declaration (includes enum constants) */
FIELD,

/** Method declaration */
METHOD,

/** Parameter declaration */
PARAMETER,

/** Constructor declaration */
CONSTRUCTOR,

/** Local variable declaration */
LOCAL_VARIABLE,

/** Annotation type declaration */
ANNOTATION_TYPE,

/** Package declaration */
PACKAGE

 

转载于:https://www.cnblogs.com/quyanhui/p/5685018.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值