J2EE注解

一、Java注解

1.1 元注解

Java中元注解有四个:@Retention@Target@Document@Inherit

@Retention

作用:保留的位置

@Retention注解有一个属性value,是RetentionPolicy类型的,RetentionPolicy有3个值:CLASSRUNTIMESOURCE,按生命周期来划分可分为3类:

  • RetentionPolicy.SOURCE:注解只保留在源文件,当Java文件编译成class文件的时候,注解被遗弃
  • RetentionPolicy.CLASS:注解被保留到class文件,但jvm加载class文件时候被遗弃,这是默认的生命周期
  • RetentionPolicy.RUNTIME:注解不仅被保存到class文件中,jvm加载class文件之后,仍然存在

这3个生命周期分别对应于:Java源文件(.java文件) -> .class -> 内存中的字节码。那怎么来选择合适的注解生命周期呢?

一般如果需要在运行时去动态获取注解信息,那只能用RUNTIME注解,比如@Deprecated使用RUNTIME注解;如果要在编译时进行一些预处理操作,比如生成一些辅助代码(如Lombok),就用CLASS注解;如果只是做一些检查性的操作,比如@Override@SuppressWarnings,使用SOURCE注解。

@Target

作用:注解的作用目标

  • @Target(ElementType.TYPE) :接口、类、枚举
  • @Target(ElementType.FIELD) :字段、枚举的常量
  • @Target(ElementType.METHOD) :方法
  • @Target(ElementType.PARAMETER):方法参数
  • @Target(ElementType.CONSTRUCTOR) :构造函数
  • @Target(ElementType.LOCAL_VARIABLE):局部变量
  • @Target(ElementType.ANNOTATION_TYPE):注解
  • @Target(ElementType.PACKAGE):包

@Document

作用:说明该注解将被包含在javadoc

@Inherit

作用:说明子类可以继承父类中的该注解

1.2 @Override

作用在方法上,当我们想重写一个方法时,在方法上加@Override,当我们方法的名字出错时,编译器就会报错

1.3 @Deprecated

用来表示某个类或属性或方法已经过时,不想别人再用时,在属性和方法上用@Deprecated修饰

1.4 @SuppressWarnings

用来压制程序中出来的警告,比如在没有用泛型或是方法已经过时的时候

1.5 @Documented

给类方法添加注释

二、SpringBoot中注解

@SpringBootApplication

SpringBoot应用标注在某个类上说明这个类是SpringBoot的主配置类,SpringBoot就应该运行这个类的main方法来启动SpringBoot应用

@SpringBootConfiguration: 标注在某个类上,表示这是一个SpringBoot的配置类

@EnableAutoConfiguration: 开启自动配置功能

@AutoConfigurationPackage:自动配置包

@Import(AutoConfigurationPackages.Registrar.class)

@ImportSpring底层的注解,负责将组件导入到容器中。org.springframework.boot.autoconfigure.AutoConfigurationPackages.Registrar将主配置类(@SpringBootApplication标注的类)的所在包及下面所有子包里面的所有组件扫描到Spring容器

@Import({EnableAutoConfigurationImportSelector.class})

EnableAutoConfigurationImportSelector将所有需要导入的组件以全类名的方式返回;这些组件就会被添加到容器中。会给容器中导入非常多的自动配置类(xxxAutoConfiguration);就是给容器中导入这个场景需要的所有组件,并配置好这些组件;

SpringBoot在启动的时候从类路径下的META-INF/spring.factories中获取EnableAutoConfiguration指定的值,将这些值作为自动配置类导入到容器中,自动配置类就生效,帮我们进行自动配置工作;以前我们需要自己配置的东西,自动配置类都帮我们;

J2EE的整体整合解决方案和自动配置都在spring-boot-autoconfigure-1.5.9.RELEASE.jar

@ConditionalOnBean是依赖,@ConditionalOnMissBean是排斥,@Conditional为条件

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

HuCheng1997

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值