JAVA注解Annottation

2020-12-05  本文已影响0人  橄榄树上结果果

注解(Annottation)又叫标注,是从java5开始增加的一种引用数据类型。 Java 8以前,注解只能在声明的地方使用(声明方法、变量、类等),Java 8开始,注解可以在任何地方使用(泛型、抛异常、方法中等),这是因为Java 8 增加了两种ElementType。注解本质上就是代码中的特殊标记,通过这些标记可以编译、类加载、以及运行时执行的处理。

语法为

   访问修饰符 @interface 注解名称{

         访问修饰符 属性类型 属性名称1();   // 注解成员;

         访问修饰符 属性类型 属性名称2()  default  默认值; // 注解成员;

    }

注解使用的常见场景

注解的用途:这个问题要配合元注解说明。元注解:用来标注注解的注解,用来配置这个注解的基本属性:

  1. ANNOTATION_TYPE,//可以用在另一个注解上(自定义元注解)

  2. CONSTRUCTOR,//可以用于构造方法上

  3. FIELD,//可以用于字段声明上,包括枚举上

  4. LOCAL_VARIABLE,//可以用于局部变量上

  5. METHOD,//可以用于方法上

  6. PACKAGE,//可以用于包声明上

  7. PARAMETER,//可以用于参数声明上

  8. TYPE,//可以用于类、接口、枚举声明上

  9. TYPE_PARAMETER,//表示注解能写在类型变量的声明语句中。1.8版本加入的

  10. TYPE_USE;//表示注解能写在使用类型的任何语句中 1.8版本加入

元注解有效期配置

因此,自定义注解通常使用在RUNTIME级别。

常用注解说明

JDK的内置注解

JPA的注解

@Entity

Spring的注解

声明bean的注解

注入bean的注解

java配置类相关注解

切面(AOP)相关注解

Spring支持AspectJ的注解式切面编程。

利用工厂模式、代理模式和注解模拟实现spring的IOC、AOP及利用AOP实现记录日志。

IOC

分析:依赖注入是需要在提供Bean之前,将声明的依赖添加到Bean中,因此不能new对象,需要利用工厂模式提供产品。为了保护实际的执行着,采用代理模式,提供产品。声明对象之间的关系可以使用xml等配置文件,也可以使用注解的方式实现,对于注解方式更便捷。

设计:

声明两个注解:

@Component:用于告知哪些Bean使用框架管理。

@Resource:指定需要注入的类型。

提供两个工厂:

BeanFactory:

初始化需要管理的Bean。

提供Bean的产品

ProxyFactory:利用cglib在执行方式前,将需要依赖注入到要执行任务的Bean中。

AOP

分析:在不改变已有程序的前提,指定一个切面。

指定切点,并提供切点执行的顺序。例如在执行前或执行后通知。

设计:

声明注解:

@Aspect:切面

@Before:前通知切点

@After:后通知切点

提供一个工厂

IntercepterFactory:初始化切面及切点。

提供两个管理对象

IntercepterDefine:需要拦截的切面信息。

IntercepterExcuteDefine:在拦截后实际执行的信息。

上一篇 下一篇

猜你喜欢

热点阅读