- 博客(181)
- 收藏
- 关注
原创 Thrift对多接口服务的支持
Thrift对多接口服务的支持 Thrift在0.9.1版本之前,一直只提交了对单一接口服务的支持,即一个RPC服务器(对应一个端口)支持一个服务接口的实现。但是很多时候,我们的服务不能实现在一个接口里,一是接口里的方法越来越多,不好管理和使用;二是根据职责的单一要求,不能类型的方法,不能放在同一接口里。在 Thrift-0.9.1之前,我们要解决上面的问题,一是通过多
2013-09-14 14:43:08
25657
4
原创 线程dump的工具和方法
线程dump的工具和方法 在Java项目中,有很多时候需要做线程dump,比如,系统挂起、死锁、不能创建更多本地线程的OOME、CPU消耗过多等等;甚至有些堆内存溢出也可能跟线程有关,因为可能是创建了过多的线程导致堆内存不够用。 这里主要来说说做线程dump的一些方法和使用场合,至于如何做线程分析,将会在下一篇文字中说到。 本文所提到的工
2012-12-19 13:28:38
13058
原创 小巧的本地缓存Jodd
小巧的本地缓存Jodd 说到缓存,大家容易想到memcached和redis,它们大名鼎鼎,但都是远程缓存,需要通过TCP网络访问。 这些缓存服务器本身性能很好,但不管性能再怎么好,也要通过网络访问,肯定不如本地直接访问内存快。 说到本地缓存,大家最常用的是google的guava库,这个库也非常好用,但它有一个问题,就是一个内存管理服务只能设
2012-12-18 15:15:13
6998
原创 JGroups系列之介绍和体会
JGroups系列之介绍和体会 很早就想做这个JGroups系列,因为在分布式的系统中,各个部分经常需要相互通信。这些通信包括:信息需要同时发给集群中的某些或全部的worker;或者一个worker启动、停止需要通知其他的worker;等等。 对于这些问题的解决,我们通常有各种各样的方法。比如,信息需要同时发给集群中的某些或全部的worke
2012-11-08 16:56:51
11515
1
原创 Groovy系列目录
<!--CTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dt-->前言及资源前言写在Groovy/Grails栏目开通的话资源2G资源IDEGroovy与IDEGroovy的Eclipse插件的安装
2009-06-10 08:03:00
28527
5
原创 Groovy探索 关于“Load my Resource”模式的解读
Groovy探索 关于“Load my Resource”模式的解读 很早就在Groovy语言的官方文档上看到了“Load my Resource”模式,却一直没有在意,可能是因为它不是GOF的经典模式中的一种。最近又不经意的看到了它,却鬼使神差的大概看了一遍,当略略有点明白它的意思时,就有点惊奇于它的功能了,当再一次阅读时,静下心来想一想,就真正感叹于
2009-06-05 08:03:00
6283
1
原创 Groovy Tip 37 字符串和数字之间的转化
Groovy Tip 37 字符串和数字之间的转化 字符串和数字之间的转化是我们在项目中必然要碰到的问题,因为我们从用户界面取得的变量的值肯定是字符串。所以,我们在项目中经常要做的事情就是:第一,需要对用户的输入进行校验,以判断用户的输入是否是一个数字;第二,如果是的话,我们则需要进一步把它转化为数字,以方便我们进行计算。在Jav
2009-06-04 07:57:00
25040
3
原创 Groovy探索 关于方法名的DSL
Groovy探索 关于方法名的DSL Groovy语言最引以为豪的特点就是DSL了,关于DSL的定义以及分类、优点等,就不是本篇所要阐述的了,大家可以上网查,网上有大量的这方便的介绍。Groovy语言是非常便于设计内部DSL了,在这方面,我的Groovy探索系列已经有了很多专题谈到过使用Groovy语言创建内部DS
2009-06-02 07:55:00
7067
翻译 Grails的增长率
Grails的增长率 这是Grails、Groovy、Rails、Ruby、Spring的工作趋势图。非常有趣…看起来好像媒体的宣传机器跟上了现实的需求… 原文链接:http://www.transentia.com.au/flatpress/?x=entry:e
2009-06-01 08:05:00
5201
原创 Groovy探索之MOP 十六 使用Interceptor实现简单的观察家模式
Groovy探索之MOP 十六 使用Interceptor实现简单的观察家模式 观察家模式是我们比较常用的一种模式,也是其他的一些常用模式的基础,比如MVC模式就是一种以观察家模式为基础的模式。在Java语言中,观察家模式的实现十分的简单,就是让被观察者继承Observable类,而让观察者实现Observer接口。这些基础的用法,都在我的文字——《螳螂捕蝉、黄雀在后——从
2009-06-01 07:58:00
5568
原创 Groovy Tip 36 “in”关键字
Groovy Tip 36 “in”关键字 谈到“in”关键字,在Java语言里很少用到,因为它引入得比较晚,也就是JDK5的增强for循环。Groovy语言也把这个功能保留了下来,这样,我们可以写一些类似于下面的代码: def list = [1,2,3] for(i in list)
2009-05-27 08:07:00
6520
原创 Groovy探索之MOP 十五 方法名的动态性(2)
Groovy探索之MOP 十五 方法名的动态性(2) List scores = [new Student(no:123,name:Tom,chinScore:90,mathScore:99,englScore:60,physScore:88,chemScore:96)] scoresnew Stu
2009-05-26 08:34:00
5518
原创 Groovy探索之MOP 十五 方法名的动态性(1)
Groovy探索之MOP 十五 方法名的动态性(1) 到目前为止,我们的《Groovy探索之MOP》系列已经谈到了使用ExpandoMetaClass的方方面面,但值得注意的是,我们通过ExpandoMetaClass给一个类在运行期内添加一个方法,不管是普通方法还是静态方法,我们都是添加一个确定方法名的方法。即我们添加一个方法名为A的方法,然后才能使用这个
2009-05-26 08:25:00
5736
原创 Groovy探索之MOP 十四 对Java类使用Groovy语言的MOP
Groovy探索之MOP 十四 对Java类使用Groovy语言的MOP 既然Groovy语言是Java语言的扩展,那么我们在使用Groovy语言的时候,就很难与Java语言真正脱得了干系,那怕我们是在做一个纯Groovy语言的项目,如Grails项目。我们可能在Groovy代码中会用到遗留的Java类和包;也可能是为了性能的原因,我们不得不在Groovy语言中
2009-05-25 08:03:00
6746
2
原创 Groovy探索之MOP 十二 方法的调用顺序
Groovy探索之MOP 十二 方法的调用顺序 我们知道,除了使用hook来拦截方法以外,我们还可以通过各种方式来实现方法。如,我们可以在类里直接实现方法;我们可以通过ExpandoMetaClass在运行期内添加方法;我们还可以通过ExpandoMetaClass在运行期内单独给一个对象添加方法。所有的这些直接添加方法的途径,如果存在hook的话,
2009-05-22 07:57:00
4857
2
原创 Groovy Tip 35 正则表达式 四
Groovy Tip 35 正则表达式 四 我们知道,在正则表达式中,有一些字符串被用来的表达一些特殊的用途。比如,"."代表的是所有的字符;"^"代表的是非;等等。看到这些用法的时候,我们就可以反过来问了,如果"."代表的是所有的字符的话,那么用什么来匹配字符串中的"."呢?为了解决这样的问题,在正则表达式中需要用"/"加上原字
2009-05-20 07:59:00
5382
2
原创 Groovy探索之MOP 十三 Interceptor 三(2)
Groovy探索之MOP 十三 Interceptor 三(2) 其实,阻止拦截的使用像在《Groovy探索之MOP 十三 Interceptor 三(1)》中的最后一个例子那像的使用并不多,更多的是在使用拦截器的客户那里决定是否使用拦截器。还是上一篇的那个例子: class Hello { def hello(name)
2009-05-19 08:07:00
4675
原创 Groovy探索之MOP 十三 Interceptor 三(1)
Groovy探索之MOP 十三 Interceptor 三(1) 本篇的“Interceptor”,主要是来说说拦截器的阻止拦截的问题,这个问题是我们自定义拦截器时经常要遇到的挑战之一。与阻止拦截很近的一个意思是不拦截,即我们可以拦截某个方法,但我们不对拦截做任何实质性的动作,即我们简单的将拦截的动作放行。这是一种被动的不拦截行为。而我们的阻
2009-05-19 08:00:00
4747
翻译 Groovy是连接脚本语言和企业级Java世界的桥梁 四
Groovy是连接脚本语言和企业级Java世界的桥梁 四 IndicThreads >>现在有了基于Groovy语言的web开发框架或者它被集成到了一个知名的Java开发框架里去了吗? Guillaume Laforge >>现在已经有了大量的web开发框架嵌入了Groovy语言。例如,RIFE开发框架就允许你使用Groovy来定义元素(控制器和act
2009-05-18 08:05:00
5245
原创 Groovy探索之反射
Groovy探索之反射 我们知道,在Java语言中,我们能够获取到Java语言的动态性,主要是通过它的反射机制来实现的。而在Groovy语言中,我们将会有很多方式来获取它的动态性,比如MOP等等。因此,在Groovy语言中,我们需要在运行期内调用某个方法,将不会使用反射机制,虽然我们仍然能够在Groovy语言中使用
2009-05-15 08:05:00
9643
1
翻译 Groovy是连接脚本语言和企业级Java世界的桥梁 三
Groovy是连接脚本语言和企业级Java世界的桥梁 三 IndicThreads >>最近,有好几个脚本语言围绕在我们的周围,每一种都有一些专家在说X语言是未来。这只能使得开发人员更加不确定,并且他们最后所做的动作就是远离所有的语言。那么什么是Groovy语言的USP? Guillaume Laforge >>我想Groovy语言的最大卖点是它的MOP
2009-05-15 08:01:00
2126
原创 Groovy Tip 29 正则表达式 三
Groovy Tip 29 正则表达式 三 本篇主要来谈谈"捕获组"和"非匹配组"以及与它们相关联的一些概念。"捕获组"应该来说是一个很重要的特性,特别是在进行文字处理的时候。比如,我们经常会遇到一些文字或数字跟一些符号混合在一起,而我们需要把这些文字或数字从这些符号中分离出来。这时候,我们就可以用到"捕获组"。先从一个简单的例
2009-05-14 08:05:00
2974
1
翻译 Groovy是连接脚本语言和企业级Java世界的桥梁 二
Groovy是连接脚本语言和企业级Java世界的桥梁 二 IndicThreads >> Groovy语言有一天可能成为Java世界的标准脚本语言吗?这样我就可以作为Java SE/EE的一部分下载到。在Java 6,Mustang版本中,可能会出现对Groovy的一些支持吗? Guillaume Laforge >> Java 6,即众所周知的"Must
2009-05-14 08:00:00
2479
1
原创 Groovy探索之MOP 六 运行期内添加构造器和静态方法
Groovy探索之MOP 六 运行期内添加构造器和静态方法 构造器是我们喜欢重载的一个方法,因为我们在实例化一个类的时候,会遇到各种各样的情况,比如在某些情况下,一系列类的实例可能有一些相同值的属性,这时候,我们在实例化对象时,就不希望把这些相同的值分别注入到每一对象中,这样的工作很繁琐。这时候,我们就会重载构造器,但一些时候,比如一些Bean对象,它们的属性很
2009-05-13 08:06:00
3296
1
翻译 Groovy是连接脚本语言和企业级Java世界的桥梁 一
Groovy是连接脚本语言和企业级Java世界的桥梁 一 围绕着Java世界的脚本/敏捷/动态语言已经讨论了一段时间。然而,最近它们显然得到了很多的注意力,因为有了像Ruby这样的更加流行起来了的语言和像Ruby On Rails这样的框架。所以,Java社区在如饥似渴的寻找着Ruby On Rails的替代品和一个能够以使用Java知识为基础的、容易使用的
2009-05-13 07:55:00
2929
原创 Groovy探索之MOP 十一 运行期内覆盖invokeMethod
Groovy探索之MOP 十一 运行期内覆盖invokeMethod 我们很早就会使用Groovy语言的hook,即"invokeMethod"方法和其他的几个方法。我们会在一个类中实现"invokeMethod"方法,用来分派所有的或部分的在运行期内调用的该类实例的方法。这些我们在《Groovy探索之MOP 一 invokeMethod和methodMissi
2009-05-12 08:03:00
2548
原创 Groovy Tip 34 Groovy语言的here-docs
Groovy Tip 34 Groovy语言的here-docs Groovy语言对Java字符串的改变,除了String对象的很多新功能,最大的好处就是引入了Gstring的概念,这些都在前面的文字中有过详细的阐述。除此之外,Groovy语言还引入了here-docs的概念,这就是本篇将要谈到的。简单来说,here-docs就是用来解决字符串换
2009-05-08 07:59:00
2776
原创 Groovy探索之MOP 十 Interceptor 二
Groovy探索之MOP 十 Interceptor 二 在本系列的《Groovy探索之MOP 九 Interceptor 一》中,我们已经详细的介绍了一个简单的拦截器类的方方面面,使得我们初步有了拦截器的基础。本篇需要在前面的拦截器类的基础上,进一步用拦截器类来实现我们的AOP编程。首先,我们在本系列的第一篇中,所拦截的方法都是固定的方法
2009-05-07 07:53:00
1955
4
翻译 采用Groovy和Grails吗?现在就做
采用Groovy和Grails吗?现在就做 作者:Content Team 4-29,2009 Rob James是Aegeon公司的CTO,是最早的一批在真实的软件
2009-05-06 07:57:00
3543
原创 Groovy探索之MOP 九 Interceptor 一
Groovy探索之MOP 九 Interceptor 一 近几年以来,AOP(面向方面的编程)得到了广泛的应用,我们把它应用到例如打印日志、权限控制等各个方面。而在实现AOP的时候,我们一般都借助于工具,如Spring AOP等等。当然,我们借助于工具一般都用在实现系统级的AOP上,这种实现一般都要借助于配置文档来实现。当我们需要实现较小
2009-04-30 07:59:00
3105
2
原创 Groovy Tip 33 方法的参数 二
Groovy Tip 33 方法的参数 二 Map参数是我们在Groovy语言的编码中比较常用的一种参数类型,我们常常会很自然的写出来如下的代码: t.testMap(a:1) t.testMap(a:1,b:1) t.testMap(a:1,b:1,c:1)
2009-04-29 07:56:00
4244
1
原创 Groovy探索之MOP 八 运行期内给类和对象添加属性或方法
Groovy探索之MOP 八 运行期内给类和对象添加属性或方法 我们都知道,在Groovy语言中,我们可以使用MOP特性在运行期内添加属性或方法。这种添加包括两个层面的添加:第一, 是给一个类添加属性或方法。也就是说,如果我们在运行期内给一个类添加了属性或方法,那么添加了以后,所有这个类实例化的对象,都将拥有了这个属性或方法。第二, 第二,是
2009-04-28 07:56:00
2831
1
原创 Groovy探索 自定义Range 三 自定义Range与责任链模式
Groovy探索 自定义Range 三 自定义Range与责任链模式 责任链模式也是我们比较常用的一种模式,我在《Groovy探索之责任链模式》中有个探索。大家也可以在网上搜索,应该有很多这方面的文章。在这里,我们将使用自定义的Range类来实现责任链模式,使用的例子还是在《Groovy探索之责任链模式》一文中所谈到的"孙悟空大战二郎神"的这个情节。这样,我们可以
2009-04-27 08:01:00
1912
原创 Groovy探索之MOP 七 运行期内的方法和属性分析
Groovy探索之MOP 七 运行期内的方法和属性分析 在Groovy语言里,运行期内的方法和属性分析有三种方式,它们分别是:第一, 继承自Java语言的反射方式。第二, 使用"respondsTo"和"hasProperty"方法。第三, 使用"hasMetaMethod"和"hasMetaProperty"方法。以上三种方法都能在运行期内
2009-04-24 07:54:00
2648
原创 Groovy探索 “as”关键字的深入使用
Groovy探索 "as"关键字的深入使用 在前面的系列《Groovy Tip 20 "as"关键字的用法》中,我们已经谈到了"as"关键字的一些激动人心的用法。本篇则要接着前篇的内容说下去,继续来展现"as"关键字的一些更为激动人心的用法。在前一篇中,我们谈到了"as"关键字的一个用法是进行类型转换。最常用的是形如下面的用法:
2009-04-22 07:59:00
4718
原创 Oracle收购SUN对Groovy/Grails的影响
Oracle收购SUN对Groovy/Grails的影响 首先的感觉是一句话,应该有好的影响。Oracle很早就对Java平台进行支持了,这并不是Oracle对Java有什么另眼相待,而是作为一个MS的竞争者的必然选择。现在它收购了SUN,更加没有理由不支持Java。所以,Java的前途还是光明的。Oracle早在去年就支持Groovy/Grail
2009-04-21 08:11:00
5663
6
原创 Groovy Tip 32 方法的参数 一
Groovy Tip 32 方法的参数 一 Groovy语言在方法的输入参数方面做了很多有益的工作,这些工作有些能提高代码的阅读性,有些能提供编码的方便和敏捷。在前面的文字中,我们已经陆续的介绍过一些,如《Groovy探索之Map与DSL》。在这个系列中,我们再把一些前面没有提及的一一介绍过来。首先,是关于调用方法时的括号的使用。
2009-04-21 07:53:00
4529
2
原创 Groovy探索之MOP 五 针对接口类型的动态性
Groovy探索之MOP 五 针对接口类型的动态性 这里所说的接口类型,在Java语言和Groovy语言中,当然是既包括了基类类型和接口。所谓"接口类型的动态性",指的是在运行期内给基类或接口动态的添加方法,使得基类以及它的子类、接口的实现,都能访问这些方法。这个功能一向是我比较感兴趣的一个功能。因为我们在编程的实践中,会使用各种各样的应用API,还有JDK,在使用它们的过程中,
2009-04-20 07:58:00
2804
2
原创 Groovy Tip 31 Map拾遗
Groovy Tip 31 Map拾遗 在Groovy语言中,Map类有了跟Java语言中的Map类的很大不同,这种不同导致了Groovy语言的Map类比起Java语言的Map相当简单,这些简单之处曾在很多地方提及。除此之外,Groovy语言的Map类还有一些值得注意的地方,要想熟练的使用Groovy语言的Map类对象,我
2009-04-16 08:01:00
3580
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人