自定义注解结合cglib字节码增强自动执行解析程序
自定义注解
注解是jdk5以后加入的特性,它是代码里的特殊标记,这些标记可以在编译,类加载,运行时被读取,并执行相应的处理。
cglib字节码增强
cglib字节码增强是为了生成代理对象,对于普通的接口和实现类的方式可以使用jdk的动态代理,而对于只有实现类来说,jdk的动态代理就不能用了。这时可以选择使用cglib字节码增强。
关于cglib生成动态代理对象的步骤会在之后的程序中详细写明。
首先,导入cglib的相关jar包,需要的jar包有两个,一个是asm包,另一个是cglib包,这两个jar包同时也被整合到spring的核心包core中(Spring的aop技术底层也是使用的是jdk动态代理和cglib字节码增强)。
代码实现
自定义注解类
import java.lang.annotation.*;
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface Resource {
String name();
}
这里定义了一个注解叫做@Resource,并且使用元注解@Target表明该注解是可以作用于方法上的,不写的话默认是作用于类上的,@Retention表明该注解需要保留到运行