zoukankan      html  css  js  c++  java
  • J2EE注解

    Java注解

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

    @Retention

    作用:注解保留的位置

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

    1、RetentionPolicy.SOURCE:注解只保留在源文件,当Java文件编译成class文件的时候,注解被遗弃; 2、RetentionPolicy.CLASS:注解被保留到class文件,但jvm加载class文件时候被遗弃,这是默认的生命周期; 3、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

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

    @Override

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

    @Deprecated

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

    @SuppressWarnings

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

    @Documented

    给类方法添加注释

    SpringBoot注解

    @SpringBootApplication

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

    @SpringBootConfiguration

    标注在某个类上,表示这是一个Spring Boot的配置类

    @EnableAutoConfiguration

    开启自动配置功能

    @AutoConfigurationPackage

    自动配置包

    @Import(AutoConfigurationPackages.Registrar.class)

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

    @Import({EnableAutoConfigurationImportSelector.class})

    EnableAutoConfigurationImportSelector将所有需要导入的组件以全类名的方式返回;这些组件就会被添加到容器中。

    会给容器中导入非常多的自动配置类(xxxAutoConfiguration);就是给容器中导入这个场景需要的所有组件,并配置好这些组件;

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

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

    @ConditionalOnBean、@ConditionalOnMissBean、@Conditional

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

     

  • 相关阅读:
    一条select语句的执行流程
    理解数据库的事物,ACID,cap
    java并发volatile和sychnorized的底层机制
    避免死锁的几种方式
    如何减少线程上下文切换
    RestTemplate设置超时时间
    spring事务隔离级别和传播级别
    mysql数据库与其他数据库的区别
    spingcloud组件注解汇总
    python二级选择题易错知识点总结
  • 原文地址:https://www.cnblogs.com/hucheng1997/p/11733430.html
Copyright © 2011-2022 走看看