`
talentkep
  • 浏览: 101458 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论
文章列表
AOP功能强大,但是spring是如何来实现AOP技术的呢? SPRING是通过动态代理来实现AOP的,SPRING内部提供了2种实现机制 1.如果是有接口声明的类进行AOP,spring调用的是java.lang.reflection.Proxy类来做处理 Java代码 org.springframework.aop.framework.JdkDynamicAopProxy        public Object getProxy(ClassLoader classLoader) {            if (logger.isDebugEnabled( ...
Java Proxy代理类的理解 关键字: java proxy     在Java中利用代理(Proxy)可以在运行时创建一个实现了一组给定接口的新类。        在系统程序设计中,有时需要面对无法确定接口,却需要构造对象的情况。以前为了解决此问题,有些程序根据动态确定的接口,生成Java类文件,然后调用类加载器构造该对象,然后使用,这样一来无可避免性能问题。通过代理类,能够在不额外创建Java文件的情况下构造对象及调用该对象方法。       使用代理的理由有很多,其中就有如下的情况:     1.路由对远程服务器的方法调用     2.在程序运行期间,将用户接口事 ...
网上的资料总是说spring的aop功能不支持对象内部方法间的嵌套代理。 不过今天试了一下,在不使用spring框架的时候,直接调用cglib的api,是可以实现一个对象内部方法间的嵌套代理的。 那么。。。为什么总说spring不支持一个实例方法间的嵌套代理呢。 如果强制spring使用cglib后可以实现嵌套代理,那么spring又是如何避免一个server内部方法间的事务的嵌套呢。 有点疑惑。。。望指点。。。:) 问题补充:感谢netfork的关注,贴出cglib的测试代码,测试代码改自论坛中另外一个介绍cglib使用的帖子。 1)被代理类findInfo方法调用findInfo2方法 ...
通过CGLIB实现AOP的浅析(顺便简单对比了一下JDK的动态代理) 关键字: spring, cglib, 动态代理, aop 问了两个问题,还跑到论坛里回贴追着问,最终都得到的是结论性的贴子,没有得到我想要的分析。 功夫不负有心人,我终于弄明白了。 现象和问题请参照下面两个网页: http://www.iteye.com/problems/7876 http://www.iteye.com/problems/7987 讨论的帖子: http://www.iteye.com/topic/259458?page=2 先说一下结论 在类没有实现任何接口,并且没有默认构造函数的情况下,通过构造 ...
  Spring 在进行反射时候主要有两种策略,一种是直接用 JDK 的反射,另外是用 CgLib 。 cglib是一个开源项目, 是一个强大的,高性能,高质量的Code生成类库,它可以在运行期扩展Java类与实现Java接口。Hibernate用它来实现PO字节码的动态生成。cglib项目主页: http://cglib.sourceforge.net/ CgLib 底层用的 asm   Asm 是一个强大的 
AOP 的利器:ASM 3.0 介绍 文档选项 <noscript></noscript> <noscript></noscript> <script type="text/javascript"></script> 打印本页

JIT 认识

    博客分类:
关于java的JIT知识 刚看Practical java ,对jit不是很明白:搜索结果如下:    什么是JIT? JIT是just in time,即时编译技术。使用该技术,能够加速java程序的执行速度。下面,就对该技术做个简单的讲解。 首先,我们大家都知道,通常javac将程序源代码编译,转换成java字节码,JVM通过解释字节码将其翻译成对应的机器指令,逐条读入,逐条解释翻译。很显然,经过解释执行,其执行速度必然会比可执行的二进制字节码程序慢。为了提高执行速度,引入了JIT技术。 在运行时JIT会把翻译过的机器码保存起来,已备下次使用,因此从理论上来说,采用 ...
Manipulate your Java process heap – Basic KnowledgeAs I have mentioned at the beginning of Process Memory Model on AIX section, Java application in running itself is normally a process which most likely written in C/C++. When thinking about memory allocation of Java applications, nothing special from ...
處理此問題步驟Java Out of Memory 1. 收集與分析verbose gc 的錯誤訊息輸出??將“verbosegc“參數加入命令提示列啟動Server,這將會將GC 的活動資訊顯示在標準輸出/輸入,轉到stdout/stderr 的檔案中。執行應用程式直到問題再次產生。??確定在java out of memory 之前,JVM 做如下內容:??Full GC run:執行full GC 與所有soft/weak/phantomly reachable 的物件能被移除與這些空間能被回收,在下面網址可以找到更多不同等級物件消耗細項說明:http://java.sun.com/dev ...
一般在3-tier 架構下的應用系統,最常見的問題就是Out of Memory(記憶體不足),或Memory leak(記憶體洩漏)的狀況,最後往往導致Application Server失效與系統Crash,讓管理人員必需常常守候在Server 旁邊,注意它關心它系統狀況與運作情形避免它Crash。而本專題報導則是針對此類型問題 的發生,從JVM 其基本架構開始說明,並採用問答與實例的方式進行說明解釋,並且提供檢查的項目說明,可藉由這些項目自我檢測,以避免發生Memory leak 有效掌握Resource。 何謂Out of Memory?Memory leak?Out of M ...
UML类图关系大全 1、关联双向关联:C1-C2:指双方都知道对方的存在,都可以调用对方的公共属性和方法。在 GOF的设计模式书上是这样描述的:虽然在分析阶段这种关系是适用的,但我们觉得它对于描述设计模式内的类关系来说显得太抽象了,因为在设计阶段关联关系必须被映射为对象引用或指针。对象引用本身就是有向的,更适合表达我们所讨论的那种关系。所以这种关系在设计的时候比较少用到,关联一般都是有向的。使用ROSE 生成的代码是这样的: class C1  ...{ public:     C2* theC2;
"^\d+$"  //非负整数(正整数 + 0)"^[0-9]*[1-9][0-9]*$"  //正整数"^((-\d+)|(0+))$"  //非正整数(负整数 + 0)"^-[0-9]*[1-9][0-9]*$"  //负整数"^-?\d+$"    //整数"^\d+(\.\d+)?$"  //非负浮点数(正浮点数 + 0)"^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9 ...
使用Windows操作系统的朋友对Excel(电子表格)一定不会陌生,但是要使用Java语言来操纵Excel文件并不是一件容易的事。在Web应用日益盛行的今天,通过Web来操作Excel文件的需求越来越强烈,目前较为流行的操作是在JSP或Servlet 中创建一个CSV (comma separated values)文件,并将这个文件以MIME,text/csv类型返回给浏览器,接着浏览器调用Excel并且显示CSV文件。这样只是说可以访问到Excel文件,但是还不能真正的操纵Excel文件,本文将给大家一个惊喜,向大家介绍一个开放源码项目,Java Excel API,使用它大家就可以方便地 ...
package chb.util;               import java.io.File;        import java.io.IOException;               import jxl.Cell;        import jxl.Sheet;        import jxl.Workbook;        import jxl.read.biff.BiffException;        import jxl.write.Label;        import jxl.write.Writabl ...
(1)模板 + 数据模型 = 输出 FreeMarker基于设计者和程序员是具有不同专业技能的不同个体的观念他们是分工劳动的:设计者专注于表示——创建HTML文件、图片、Web页面的其它可视化方面;程序员创建系统,生成设计页面要显示的数据。经常会遇到的问题是:在Web页面(或其它类型的文档)中显示的信息在设计页面时是无效的,是基于动态数据的。在这里,你可以在HTML(或其它要输出的文本)中加入一些特定指令,FreeMarker会在输出页面给最终用户时,用适当的数据替代这些代码。   先来解释一下freemaker的基本语法了,<# ... > 中存放所有freemaker的内 ...
Global site tag (gtag.js) - Google Analytics