资源描述:
《使用Java原生代理实现数据注入》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、使用Java原生代理实现数据注入1、注解基础知识点定义:注解(Annotation),也叫元数据。一种代码级别的说明。它是JDK1.5及以后版本引入的一个特性,与类、接口、枚举是在同一个层次。它可以声明在包、类、字段、方法、局部变量、方法参数等的前面,用来对这些元素进行说明,注释。作用分类:编写文档:通过代码里标识的元数据生成文档【生成文档doc文档】代码分析:通过代码里标识的元数据对代码进行分析【使用反射】编译检查:通过代码里标识的元数据让编译器能够实现基本的编译检查【Override】andsoon….如果你对注解(Annotation)还没有了解请左移
2、百度百科:Annotation和Java注解啊,,是不是很眼熟,这个不就是经常看到的那个@Override神马的么…原来这个东西就叫做注解啊.—–引至百度:我个人使用的理解,annotation是一种在类、类型、属性、参数、局部变量、方法、构造方法、包、annotation本身等上面的一个附属品(ElementType这个枚举中有阐述),他依赖于这些元素而存在,他本身并没有任何作用,annotation的作用是根据其附属在这些对象上,根据外部程序解析引起了他的作用,例如编译时的,其实编译阶段就在运行:javaCompiler,他就会检查这些元素,例如:@Su
3、ppressWarnings、@Override、@Deprecated等等;的确是,但是想想Spring的IOC依赖注入,控制反转@xxx(xxx=xxx)然后Bean里就被赋值了,是不是觉得好帅,哈,是不是也觉得好神奇?是不是我创建一个注解,然后把他作用到类上就能赋值了?赶紧试一试…首先,创建一个注解,用关键字@interface来声明,这是一个注解类.@Target来声明注解目标,@Retention用来说明该注解类的生命周期.packageproxy.annon;importjava.lang.annotation.ElementType;impor
4、tjava.lang.annotation.Retention;importjava.lang.annotation.RetentionPolicy;importjava.lang.annotation.Target;@Retention(RetentionPolicy.RUNTIME)@Target({ElementType.FIELD,ElementType.METHOD})public@interfaceSeven{publicStringvalue()default"小黑";publicStringProperty()default"无属性";}然后
5、还用咱们昨天的写的JavaBean,加上注解后的样子就是:packageproxy;importproxy.annon.Seven;importproxy.imp.AnimalInterface;publicclassDogImpimplementsAnimalInterface{@Seven(value="Lumia")privateStringname;privateStringProperty;publicDogImp(){}@OverridepublicvoidsetName(Stringname){this.name=name;}@Override
6、publicStringgetName(){returnthis.name;}@Overridepublicvoidsay(){System.out.println("小狗:汪汪汪汪.....");}@Override@Seven(Property="水陆两栖战士")publicvoidsetProperty(StringProperty){this.Property=Property;}@OverridepublicvoidgetProperty(){System.out.println(this.name+this.Property);}}迫不及待运行下
7、:packageproxy;publicclassTest{publicstaticvoidmain(String[]args){DogImpdogImp=newDogImp();System.out.println(dogImp.getName());dogImp.getProperty();}}输出:nullnullnull额.好伤心,表示并没有什么效果,那@的注入到底是怎么实现的呢….转了一圈,还得依赖咱们的反射大军哈哈…..赶紧改造下昨天的Demo,让其能够注解..咱们一起来…注解已经创建好了,怎么让咱们的注解产生效果呢,赶紧动手写个AnnoInje
8、ction类.用来实现注解的内容的注入..但是要注意