javaweb注解@Resource

介绍

JavaEE提供的注解

源码

@Target({TYPE, FIELD, METHOD})
@Retention(RUNTIME)
public @interface 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 "";

使用

  • 修饰成员变量
  • 修饰 setXXX() 方法

属性

  • name
  • type

装配顺序

  1. (常用)如果没有指定 name 和 type,有以下 2 种情况:

    1. 根据名字进行装配,根据 成员变量名 ,从上下文中查找名称(id )匹配的bean进行装配

    2. 如果没有匹配,找到 类型匹配 的唯一bean进行装配,找不到或者找到多个,都会抛出异常

  2. (常用)如果指定了 name ,则从上下文中查找名称(id )匹配的bean进行装配,找不到则抛出异常

  3. 如果指定了 type ,则从上下文中找到类型匹配的唯一bean进行装配,找不到或者找到多个,都会抛出异常

  4. 如果同时指定了 name 和 type ,则从Spring上下文中找到唯一匹配的bean进行装配,找不到则抛出异常