Atitti 类库 开发者 常用 api 目录 1.1. Meta anno注解元数据api 1 1.2. Ref 反射api 1 1.3. Database meta api 1 1.4.
Atitti 类库 开发者 常用 api
目录
1.1. Meta anno注解元数据api 1
1.2. Ref 反射api 1
1.3. Database meta api 1
1.4. 切面asp库 1
1.5. Classloader api 1
1.6. 字节码库 1
- Meta anno注解元数据api
- Ref 反射api
- Database meta api
- 切面asp库
- Classloader api
- Ast api
- 字节码库javassist和Cglib
如果你正在编写一个框架或者类库。有一些受欢迎的字节码库如javassist和Cglib Nodep asm可以供你选择,他们可以让你阅读和修改应用程序生成的字节码。
目前字节码修改技术有ASM,javassist,cglib,BCEL等。cglib就是基于封装的Asm. Spring 就是使用cglib代理库。关于cglib的使用介绍,
它已加入了开放源代码JBoss 应用服务器项目,通过使用Javassist对字节码操作为JBoss实现动态AOP框架
java动态性的两种常见实现方式
- 字节码操作
- 反射
运行时操作字节码可以让我们实现如下功能:
- 动态生成新的类
- 动态改变某个类的结构(添加/删除/修改 新的属性/方法)
优势:
- 比反射开销小,性能高
- JAVAasist性能高于反射,低于ASM
CGLIB
是一个强大的,高性能,高质量的Code生成类库,基于ASM实现。
JAVAssist
- 是一个开源的分析、编辑和创建java字节码的类库,性能较ASM差,跟cglib查不到,但是使用简单
JAVAssist库的API
- javassist最外层的API和Java的反射包中的API颇为类似、
- 它主要有CtClass,CtMethod,以及CtField及各类组成。用以执行和JDK反射API中java.lang.Class,java.lang.reflect.Method,java.lang.reflect.Method.Field相同的操作。
局限性:
- JDK5.0行语法不支持(包括泛型、枚举),不支持注解修改,但可以通过底层的javassist类来解决,具体参考javassist.bytecode.annotation
- 不支持数组的初始化,如String[]{“1”,“2”},除非只有数组的容量为1
- 不支持内部类和匿名类
- 不支持continue和btreak表达式
- 对于继承关系,有些不支持,例如:
Atitti 类库 开发者 常用 api 目录 1.1. Meta anno注解元数据api 1 1.2. Ref 反射api 1 1.3. Database meta api 1 1.4.相关推荐
- 十款开发者常用的Chrome插件,让chrome成为开发利器!
Chrome浏览器无论是作为浏览器市场的NO1还是其强大的跨平台能力以及丰富的扩展插件,一直是许多开发者的首要选择的浏览器.chrome浏览器也因为其丰富的Chrome插件,帮助开发者们在开发流程中极 ...
- 03-Java核心类库_常用类库
目录 一,常用类库 1,泛型 1.1 概述 1.2 使用 1.3 实例 1.4 限制泛型类型 1.5 泛型中的通配符 2,java.util.Objects 2.1 Object与Objects 2. ...
- 类库java_Java类库和常用类库介绍
Java类库和常用类库介绍 2018-09-20 Java 类库和常用类库介绍--序 作者: zccst Java 类库概念: Java 的应用程序接口 (API) 以包的形式来组织,每个包提供了大量 ...
- 天翼云盘目录索引php,TCShare:一个天翼云盘api目录列表索引程序 通过宝塔安装天翼云盘...
TCShare:一个天翼云盘api目录列表索引程序 通过宝塔安装天翼云盘 下载程序,修改congip.php中的AK SK和FD 宝塔中新建网站,上传修改过的程序到网站根目录 设置网站伪静态 Ngin ...
- php空间搭建tcshare,TCshare:天翼云盘API目录索引列表程序 新手注意事项及composer install出错处理...
天翼云盘(原名天翼云)是中国电信面向个人用户推出的云服务产品,提供"极速安全"云端存储及分享服务. 天翼云盘凭手机号码登录使用,支持电信.联通.移动手机号码,覆盖WEB.PC客户端 ...
- 微信开发者工具的目录
微信开发者工具的目录 utils存放js文件去实现小程序的功能(存放公共脚本文件),pages存放小程序的页面文件. 后面的五个称其为小程序的应用配置或者说全局配置. 2.1app.js是根目录js, ...
- 开发者常用的 Sublime Text 3 插件
1.官网下载 Sublime Text 3 (已有安装包的,请忽略) Sublime Text 官网下载地址 : http://www.sublimetext.com/ 2.打开 Sublime Te ...
- python字符串类库_Python 常用类库
python除了关键字(keywords)和内置的类型和函数(builtins),更多的功能是通过libraries(即modules)来提供的. 常用的libraries(modules)如下: 1 ...
- C#通用类库--DOS常用命令
<span style="color: #008000;" mce_style="color: #008000;">//</span>& ...
- Mac 开发者常用的工具
在写 Mac 程序员的十个武器之前,我决定先讲一个故事,关于 Mac 和爱情的.(你们不是问 Mac 和爱情有个鸟关系吗?) 从前有一个孩子叫做小明,他不是高帅富,与高大上也毫无瓜葛,只有低调.无聊和 ...
最新文章
- R语言使用ggplot2包使用geom_boxplot函数绘制基础分组箱图(不同分组配置不同的箱体填充色+自定义调色板)实战
- Camel In Action 读书笔记 (1)
- linux分区工具fdisk的使用
- WPF利用动画实现圆形进度条
- 基于事件驱动架构构建微服务第14部分:查询API
- 初识——信息安全等级保护
- 放弃用了7年的MyBatis !我选择 JDBCTemplate!
- windowns定时关机命令
- log4j从1.x平滑升级至2.x
- linux编写路由器固件,在Linux下用tftp刷写路由器固件
- 使用Kettle从国家统计局下载行政区划代码数据
- 『Python基础练习题』day04
- gerrit is not registered in your account, and you lack ‘forge author‘ permission.
- 前端移动端页面与手机尺寸和分辨率的关系
- 宏碁暗影骑士AN515-55/57/58原厂预装系统oem镜像
- android微信炸弹代码,微信炸一炸怎么弄安卓?拍一拍炸一炸会动炸弹设置教程...
- 蓝桥杯2017年第八届C/C++ B组省赛习题题解
- 用python设计一个简易的英汉互译界面_使用python一步一步搭建微信公众平台(二)----搭建一个中英互译的翻译工具...
- KubeCon China 2021 阿里云专场来了!这些首日亮点不容错过
- 聚合数据-免费的接口