搭建自己的框架,N步曲
引言
自己的杂文,写的不是很好,见谅。
本章讲解主题内容与自定义框架内容,从注解到xml定义,到常用功能。字符处理,数据内容处理,前台后台数据对接,json,文件上传下载,即时通信,等等,我能想到的东西,创建自己的框架。其中肯定有很多不完善,和现有的框架差距相当大的地方,所以请理解,这类文章只是为了提升java编程而设定,并不是为了与市面上成熟的框架做比拼。
文中很多东西都是现学的,不能说【我能】
说注解,在java编程中,注解是非常常见的,无论是常见的@Override
还是常说的各种框架提供的注解。或多或少的需要用到。今天我就去实现以下注解的过程。
java中的注解,定义一切注解的注解称之为【元注解】
,可以理解为Object
对象。
java中提供的元注解
分别为
首先来说说两个重要元注解
@Target
:目标注解。该注解表明该定义注解的使用范围
使用范围定义
ElementType.TYPE
:接口、类、枚举、注解ElementType.FIELD
: 字段、Enum
枚举常量ElementType.METHOD
:方法ElementType.PARAMETER
:方法参数【在mybatis中提供的`@param】ElementType.COSTRUCTOR
:构造方法【少见】ElementType.LOCAL_VARIABLE
局部变量【没用过暂时】ElementType.ANNOTATION_TYPE
注解【你没有看错,注解也是可以注解注解的。。】ElementType.PACKAGE
包 【这个貌似看到的很少哎】
使用方法@Target(ElementType.METHOD)
@Retention
:保留政策。该注解定义java编译时的保留方式
保留方式种类
RetentionPolicy.SOURCE
:仅存于源码中,编译[.class]时舍弃RetentionPolicy.CLASS
:编译于.class中,但是无法运行时使用RetentionPolicy.RUNTIME
: 编译于【.class】文件中,并且可以通过反射获取
使用方法@Retention(RetentionPolicy.RUNTIME)
像
@Override
就属于源码注解,在编译class时就舍弃掉了。
其余两种,一种的定义为【javadoc】使用的@Documented
,另一种就是定义可以被继承的 @Inherited
注解
现在开始定义一个注解
/**
* 在java注解中 定义与书写class类似,使用【@interface】 表示定义当前对象为注解
* 对象在注解对象中,只需要声明注解对象内容,不需要注解具体实现
* 下方示例:定义注解用于方法,并且在运行时可以被获取到
*/
@Target(ElementType.METHOD)//该注解将用于方法
@Retention(RetentionPolicy.RUNTIME)//在运行时起作用
@Inherited//可以被继承
public @interface Role{
/*
* 定义注解的一个元素【或者称之为方法】,该元素用来接受注解的值
* String role() default "defValue"; 指派当前的元素的默认值
*/
String role();
}
使用方法
public class AnnotationTest{
@Role(role="myRole")//这里是使用刚刚定义的注解
public void testMethod(){
//TODO 这里是方法体
}
}
以上就是注解的定义全过程,附录注解图一张
点击查看更多内容
5人点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦