spring和springboot注解的使用

spring和springboot注解的使用

首先看一下ElementType取值范围:

   //用于描述类、接口(包括注解类型) 或enum声明
    TYPE,
//用于描述域
     FIELD,
//用于描述方法
     METHOD,
//用于描述参数
     PARAMETER,
	//用于描述构造器
     CONSTRUCTOR,
//用于描述局部变量
     LOCAL_VARIABLE,
//用于注解类型
     ANNOTATION_TYPE,
//用于描述包
     PACKAGE,
   //该注解能使用在自定义类型参数(参数的自定义类型可以是javaBean或者枚举等)
    TYPE_PARAMETER,
 //可以在任意语句使用
    TYPE_USE

@Bean

value:bean别名和name是相互依赖关联的,value,name如果都使用的话值必须要一致;
name:bean名称,如果不写会默认为注解的方法名称;
autowire:自定装配默认是不开启的,建议尽量不要开启,因为自动装配不能装配基本数据类型、字符串、数组等,这是自动装配设计的局限性,并且自动装配不如依赖注入精确;
initMethod:bean的初始化之前的执行方法,该参数一般不怎么用,因为完全可以在代码中实现;
destroyMethod:默认使用javaConfig配置的bean,如果存在close或者shutdown方法,则在bean销毁时会自动执行该方法,如果你不想执行该方法,则添加@Bean(destroyMethod="")来防止出发销毁方法;
 
@Target({ElementType.METHOD, ElementType.ANNOTATION_TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface Bean {
    @AliasFor("name")
    String[] value() default {};

    @AliasFor("value")
    String[] name() default {};

    Autowire autowire() default Autowire.NO;

    String initMethod() default "";

    String destroyMethod() default "(inferred)";
}

Autowire
	NO(0),
    BY_NAME(1),
    BY_TYPE(2);

@Qualifier

@Primary

@Order()

@AutoConfigureBefore

@AutoConfigureAfter

ConditionalOnClass

posted @ 2023-09-11 17:47  三号小玩家  阅读(27)  评论(0)    收藏  举报
Title
三号小玩家的 Mail: 17612457115@163.com, 联系QQ: 1359720840 微信: QQ1359720840