- 浏览: 217962 次
- 性别:
- 来自: 杭州
文章分类
- 全部博客 (163)
- c++ (30)
- JavaScript (30)
- java (61)
- jQuery (3)
- ACE (2)
- oracle (9)
- jni (0)
- android (2)
- shell (1)
- myeclipse (1)
- Hibernate (1)
- linux (2)
- sqlserver (2)
- windows (2)
- sql (2)
- php (2)
- css (1)
- 学习 (1)
- ExtJs (1)
- RSS (1)
- 报文 (1)
- 跟我学Spring3 (6)
- dos (1)
- server (1)
- nosql (4)
- mongodb (6)
- photoshop (1)
- WebService (2)
- 股票 (1)
- OpenGL (3)
- Spring3MVC (6)
- 生活 (1)
- struts2 (1)
- 云盘 (1)
- blog (1)
- nosql nodejs mongoose (1)
最新评论
-
sblig:
配置分片: mongo -port 27017config ...
搭建Mongodb集群:分片Sharding+副本集Replica Set -
sblig:
配置路由:mongs: 40000 40100 40200sc ...
搭建Mongodb集群:分片Sharding+副本集Replica Set -
fuanyu:
哥们,干得漂亮。。
struts2 高危漏洞修复 -
sblig:
配置列子如下
<?xml version="1 ...
跟我学Spring3 学习笔记一 -
sblig:
307622798 写道博主你好,最近在看你的js系列文章,发 ...
JavaScript 学习笔记 二 对象的访问
ASM 进行动态生成class
import org.objectweb.asm.ClassWriter; import org.objectweb.asm.MethodVisitor; import org.objectweb.asm.Opcodes; public class HelloWorld extends ClassLoader implements Opcodes{ public static void main(String[] args) { ClassWriter cw = new ClassWriter(0); cw.visit(V1_1, ACC_PUBLIC, "Example", null, "java/lang/Object", null); MethodVisitor mw = cw.visitMethod(ACC_PUBLIC, "<init>", "()V", null, null); mw.visitVarInsn(ALOAD, 0); mw.visitMethodInsn(INVOKESPECIAL, "java/lang/Object", "<init>", "()V"); mw.visitInsn(RETURN); mw.visitMaxs(1, 1); mw.visitEnd(); mw = cw.visitMethod(ACC_PUBLIC+ACC_STATIC, "main", "([Ljava/lang/String;)V", null, null); mw.visitFieldInsn(GETSTATIC, "java/lang/System", "out", "Ljava/io/PrintStream;"); mw.visitLdcInsn("Hello World!"); mw.visitMethodInsn(INVOKEVIRTUAL, "java/io/PrintStream", "println", "(Ljava/lang/String;)V"); mw.visitInsn(RETURN); mw.visitMaxs(2, 2); mw.visitEnd(); byte[] code = cw.toByteArray(); FileOutputStream fos; try { fos = new FileOutputStream("Example.class"); fos.write(code); fos.close(); HelloWorld loader = new HelloWorld(); Class exampleClass = loader .defineClass("Example", code, 0, code.length); exampleClass.getMethods()[0].invoke(null, new Object[] { null }); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IllegalArgumentException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (SecurityException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IllegalAccessException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (InvocationTargetException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
cglib 动态生成class 并进行拦截
public class MyClass { public void print() { System.out.println("I'm in MyClass.print!"); } } import net.sf.cglib.proxy.Callback; import net.sf.cglib.proxy.Enhancer; import net.sf.cglib.proxy.MethodInterceptor; import net.sf.cglib.proxy.MethodProxy; public class Main { public static void main(String[] args) { Enhancer enhancer = new Enhancer(); enhancer.setSuperclass(MyClass.class); enhancer.setCallback((Callback) new MethodInterceptorImpl()); MyClass my = (MyClass) enhancer.create(); my.print(); } private static class MethodInterceptorImpl implements MethodInterceptor { public Object intercept(Object obj, Method method, Object[] args, MethodProxy proxy) throws Throwable { // log something System.out.println(method + " intercepted!"); proxy.invokeSuper(obj, args); return null; } } }
发表评论
-
[Java性能剖析]远程调试配置
2014-07-10 10:48 742一、服务器操作如下: 找到文件:apache-tomcat-5 ... -
[jdk工具命令]Java SE 文档
2014-07-10 10:43 740oracle java se documentation j ... -
[jdk命令工具]jconsole远程项目监控
2014-07-10 10:37 736入口:catalina.sh JAVA_OPTS=&quo ... -
[jvm参数]JVM简单配置
2014-07-10 10:35 1183-Xms256m -Xmx512M -XX:MaxPermSi ... -
struts2 高危漏洞修复
2013-07-23 10:30 11141. /** * 过滤器 */ ... -
转:调查服务器响应时间的利器 tcprstat
2012-11-16 13:50 1444http://rdc.taobao.com/blog/cs/? ... -
跟我学Spring3 学习笔记七 初始化与销毁
2012-10-18 16:45 2041最后 遗留一个问题, ... -
跟我学Spring3 学习笔记六 注入
2012-10-18 14:31 2167跟我学Spring3 学习笔 ... -
FtpUtil ftp工具类 过滤文件名
2012-10-10 16:25 6889工具类: import java.io.Buff ... -
java 高性能网络编程 NIO
2012-09-28 16:31 1465服务器端: // 1. 分配一个 Serve ... -
java 高性能网络编程 mina
2012-09-28 10:52 1641服务器端: // 创建一个非阻塞的server端so ... -
代理 下载网页,挖掘数据
2012-09-25 13:51 840URL url = new URL("http:// ... -
java nio 编程学习 一
2012-09-21 16:08 1142Java.nio中的主要类ServerSocketChanne ... -
MongoDB 实战笔记 四
2012-09-20 14:12 1091import java.net.UnknownHostExce ... -
Json 添加元素拼接JSON字符串(转)
2012-09-20 13:55 7001package com.util; import jav ... -
MongoDB 实战笔记 三
2012-09-20 13:37 2410导出mongoexport -d m ... -
MongoDB 实战笔记 二
2012-09-20 11:45 890MongoDB 实战笔记 count 查询记录 ... -
MongoDB 实战笔记 一
2012-09-20 11:30 1139MongoDB 实战笔记 来建立一个 test 的集 ... -
Struts 学习笔记 二
2012-09-17 16:56 824login.jsp 登陆页面 <html:form ac ... -
Struts 学习笔记 一
2012-09-14 15:36 1109struts 1.2 涉及到的包: commons-b ...
相关推荐
ASM操作字节码,动态生成Java类class文件,模拟Spring的AOP实现原理。
NULL 博文链接:https://name327.iteye.com/blog/1554558
动态编译字符串成java,并且添加class到jvm
有时候需要在运行时根据模板和数据动态生成 Java 代码,然后对其进行编译生成 Class 文件,然后再将这些类加载 进去,并使用反射来创建对象。
根据xml文件生成C# 属性class类,附件含源码。分享给需要的朋友
cglib动态生成java类
Java生成的class反编译工具。这个真的很好用
cglib生成的代理的class
根据数据库SQL脚本生成c++的class类
简单的winfrom小程序,输入excle文件路径,读取表内信息,转换为datatable数据格式,再通过遍历datatable数据根据字符串拼接得到自己需要的格式数据。添加到类文件内
本软件可根据表字段,生成Model层的Class.及DAL,BLL.还可以生成文件.
DB2Class(码到成功)代码生成器是一款为C#数据库程序员设计的在线自动代码生成器,其生成的代码基于面向对象的思想和MVC架构设计。主要实现在项目中数据库表的基类代码的自动生成,包括生成属性、添加、修改、删除...
通过odex生成class文件需要的booksmali和smali
weblogic weblogic生成的class
es5 生成class,支持构造传参、继承、函数复用、多继承;
本压缩文件包含两个项目,用于演示如何输出JDK和CGLib动态代理产生的class文件,欢迎下载!
WMI信息Class代码生成器WMIclass[WMIclass.rar]-精品源代码
通过java的动态编译加载技术,根据java文件动态生成Mysql表创建语句,并且在mysql数据库中创建表
java开发时,打包的时候...用此工具可以很方便的生成目录结构和类的文件。 使用方法:1 填写源代码全地址目录和目标代码全地址目录。2 填写要抽取的类。3 填写完毕后,点击实行,即可做出要的类文件以及相应目录结构。
简单讲述如何执行带包的java、如何将class生成jar、如何执行jar文件