自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(181)
  • 收藏
  • 关注

原创 Thrift对多接口服务的支持

Thrift对多接口服务的支持   Thrift在0.9.1版本之前,一直只提交了对单一接口服务的支持,即一个RPC服务器(对应一个端口)支持一个服务接口的实现。但是很多时候,我们的服务不能实现在一个接口里,一是接口里的方法越来越多,不好管理和使用;二是根据职责的单一要求,不能类型的方法,不能放在同一接口里。在 Thrift-0.9.1之前,我们要解决上面的问题,一是通过多

2013-09-14 14:43:08 25239 4

原创 线程dump的工具和方法

线程dump的工具和方法         在Java项目中,有很多时候需要做线程dump,比如,系统挂起、死锁、不能创建更多本地线程的OOME、CPU消耗过多等等;甚至有些堆内存溢出也可能跟线程有关,因为可能是创建了过多的线程导致堆内存不够用。       这里主要来说说做线程dump的一些方法和使用场合,至于如何做线程分析,将会在下一篇文字中说到。       本文所提到的工

2012-12-19 13:28:38 12891

原创 小巧的本地缓存Jodd

小巧的本地缓存Jodd        说到缓存,大家容易想到memcached和redis,它们大名鼎鼎,但都是远程缓存,需要通过TCP网络访问。       这些缓存服务器本身性能很好,但不管性能再怎么好,也要通过网络访问,肯定不如本地直接访问内存快。       说到本地缓存,大家最常用的是google的guava库,这个库也非常好用,但它有一个问题,就是一个内存管理服务只能设

2012-12-18 15:15:13 6880

原创 JGroups系列之介绍和体会

JGroups系列之介绍和体会            很早就想做这个JGroups系列,因为在分布式的系统中,各个部分经常需要相互通信。这些通信包括:信息需要同时发给集群中的某些或全部的worker;或者一个worker启动、停止需要通知其他的worker;等等。         对于这些问题的解决,我们通常有各种各样的方法。比如,信息需要同时发给集群中的某些或全部的worke

2012-11-08 16:56:51 11398 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 28158 7

原创 Groovy探索 关于“Load my Resource”模式的解读

            Groovy探索 关于“Load my Resource”模式的解读   很早就在Groovy语言的官方文档上看到了“Load my Resource”模式,却一直没有在意,可能是因为它不是GOF的经典模式中的一种。最近又不经意的看到了它,却鬼使神差的大概看了一遍,当略略有点明白它的意思时,就有点惊奇于它的功能了,当再一次阅读时,静下心来想一想,就真正感叹于

2009-06-05 08:03:00 6153 1

原创 Groovy Tip 37 字符串和数字之间的转化

                   Groovy Tip 37  字符串和数字之间的转化   字符串和数字之间的转化是我们在项目中必然要碰到的问题,因为我们从用户界面取得的变量的值肯定是字符串。所以,我们在项目中经常要做的事情就是:第一,需要对用户的输入进行校验,以判断用户的输入是否是一个数字;第二,如果是的话,我们则需要进一步把它转化为数字,以方便我们进行计算。在Jav

2009-06-04 07:57:00 24355 3

原创 Groovy探索 关于方法名的DSL

                             Groovy探索 关于方法名的DSL    Groovy语言最引以为豪的特点就是DSL了,关于DSL的定义以及分类、优点等,就不是本篇所要阐述的了,大家可以上网查,网上有大量的这方便的介绍。Groovy语言是非常便于设计内部DSL了,在这方面,我的Groovy探索系列已经有了很多专题谈到过使用Groovy语言创建内部DS

2009-06-02 07:55:00 6981

翻译 Grails的增长率

                                             Grails的增长率   这是Grails、Groovy、Rails、Ruby、Spring的工作趋势图。非常有趣…看起来好像媒体的宣传机器跟上了现实的需求…  原文链接:http://www.transentia.com.au/flatpress/?x=entry:e

2009-06-01 08:05:00 5126

原创 Groovy探索之MOP 十六 使用Interceptor实现简单的观察家模式

Groovy探索之MOP 十六 使用Interceptor实现简单的观察家模式   观察家模式是我们比较常用的一种模式,也是其他的一些常用模式的基础,比如MVC模式就是一种以观察家模式为基础的模式。在Java语言中,观察家模式的实现十分的简单,就是让被观察者继承Observable类,而让观察者实现Observer接口。这些基础的用法,都在我的文字——《螳螂捕蝉、黄雀在后——从

2009-06-01 07:58:00 5482

原创 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 6365

原创 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 5428

原创 Groovy探索之MOP 十五 方法名的动态性(1)

         Groovy探索之MOP 十五  方法名的动态性(1)   到目前为止,我们的《Groovy探索之MOP》系列已经谈到了使用ExpandoMetaClass的方方面面,但值得注意的是,我们通过ExpandoMetaClass给一个类在运行期内添加一个方法,不管是普通方法还是静态方法,我们都是添加一个确定方法名的方法。即我们添加一个方法名为A的方法,然后才能使用这个

2009-05-26 08:25:00 5655

原创 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 6636 2

原创 Groovy探索之MOP 十二 方法的调用顺序

               Groovy探索之MOP 十二 方法的调用顺序  我们知道,除了使用hook来拦截方法以外,我们还可以通过各种方式来实现方法。如,我们可以在类里直接实现方法;我们可以通过ExpandoMetaClass在运行期内添加方法;我们还可以通过ExpandoMetaClass在运行期内单独给一个对象添加方法。所有的这些直接添加方法的途径,如果存在hook的话,

2009-05-22 07:57:00 4737 2

翻译 Grails in Action:完成啦

                               Grails in Action:完成啦                                                        作者:Glen Smith                                                        2009-5-14   

2009-05-22 07:50:00 6396 1

原创 Groovy Tip 35 正则表达式 四

                     Groovy Tip 35  正则表达式 四   我们知道,在正则表达式中,有一些字符串被用来的表达一些特殊的用途。比如,"."代表的是所有的字符;"^"代表的是非;等等。看到这些用法的时候,我们就可以反过来问了,如果"."代表的是所有的字符的话,那么用什么来匹配字符串中的"."呢?为了解决这样的问题,在正则表达式中需要用"/"加上原字

2009-05-20 07:59:00 5272 2

原创 Groovy探索之MOP 十三 Interceptor 三(2)

       Groovy探索之MOP 十三 Interceptor 三(2)   其实,阻止拦截的使用像在《Groovy探索之MOP 十三 Interceptor 三(1)》中的最后一个例子那像的使用并不多,更多的是在使用拦截器的客户那里决定是否使用拦截器。还是上一篇的那个例子: class Hello {        def hello(name)   

2009-05-19 08:07:00 4603

原创 Groovy探索之MOP 十三 Interceptor 三(1)

              Groovy探索之MOP 十三 Interceptor 三(1)   本篇的“Interceptor”,主要是来说说拦截器的阻止拦截的问题,这个问题是我们自定义拦截器时经常要遇到的挑战之一。与阻止拦截很近的一个意思是不拦截,即我们可以拦截某个方法,但我们不对拦截做任何实质性的动作,即我们简单的将拦截的动作放行。这是一种被动的不拦截行为。而我们的阻

2009-05-19 08:00:00 4644

翻译 Groovy是连接脚本语言和企业级Java世界的桥梁 四

         Groovy是连接脚本语言和企业级Java世界的桥梁 四   IndicThreads >>现在有了基于Groovy语言的web开发框架或者它被集成到了一个知名的Java开发框架里去了吗? Guillaume Laforge >>现在已经有了大量的web开发框架嵌入了Groovy语言。例如,RIFE开发框架就允许你使用Groovy来定义元素(控制器和act

2009-05-18 08:05:00 5163

原创 Groovy探索之反射

                                   Groovy探索之反射  我们知道,在Java语言中,我们能够获取到Java语言的动态性,主要是通过它的反射机制来实现的。而在Groovy语言中,我们将会有很多方式来获取它的动态性,比如MOP等等。因此,在Groovy语言中,我们需要在运行期内调用某个方法,将不会使用反射机制,虽然我们仍然能够在Groovy语言中使用

2009-05-15 08:05:00 9460 1

翻译 Groovy是连接脚本语言和企业级Java世界的桥梁 三

        Groovy是连接脚本语言和企业级Java世界的桥梁 三   IndicThreads >>最近,有好几个脚本语言围绕在我们的周围,每一种都有一些专家在说X语言是未来。这只能使得开发人员更加不确定,并且他们最后所做的动作就是远离所有的语言。那么什么是Groovy语言的USP? Guillaume Laforge >>我想Groovy语言的最大卖点是它的MOP

2009-05-15 08:01:00 2040

原创 Groovy Tip 29 正则表达式 三

                       Groovy Tip 29  正则表达式 三  本篇主要来谈谈"捕获组"和"非匹配组"以及与它们相关联的一些概念。"捕获组"应该来说是一个很重要的特性,特别是在进行文字处理的时候。比如,我们经常会遇到一些文字或数字跟一些符号混合在一起,而我们需要把这些文字或数字从这些符号中分离出来。这时候,我们就可以用到"捕获组"。先从一个简单的例

2009-05-14 08:05:00 2888 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 2392 1

原创 Groovy探索之MOP 六 运行期内添加构造器和静态方法

   Groovy探索之MOP 六 运行期内添加构造器和静态方法    构造器是我们喜欢重载的一个方法,因为我们在实例化一个类的时候,会遇到各种各样的情况,比如在某些情况下,一系列类的实例可能有一些相同值的属性,这时候,我们在实例化对象时,就不希望把这些相同的值分别注入到每一对象中,这样的工作很繁琐。这时候,我们就会重载构造器,但一些时候,比如一些Bean对象,它们的属性很

2009-05-13 08:06:00 3181 1

翻译 Groovy是连接脚本语言和企业级Java世界的桥梁 一

    Groovy是连接脚本语言和企业级Java世界的桥梁 一         围绕着Java世界的脚本/敏捷/动态语言已经讨论了一段时间。然而,最近它们显然得到了很多的注意力,因为有了像Ruby这样的更加流行起来了的语言和像Ruby On Rails这样的框架。所以,Java社区在如饥似渴的寻找着Ruby On Rails的替代品和一个能够以使用Java知识为基础的、容易使用的

2009-05-13 07:55:00 2833

原创 Groovy探索之MOP 十一 运行期内覆盖invokeMethod

 Groovy探索之MOP 十一 运行期内覆盖invokeMethod          我们很早就会使用Groovy语言的hook,即"invokeMethod"方法和其他的几个方法。我们会在一个类中实现"invokeMethod"方法,用来分派所有的或部分的在运行期内调用的该类实例的方法。这些我们在《Groovy探索之MOP 一 invokeMethod和methodMissi

2009-05-12 08:03:00 2456

原创 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 2667

原创 Groovy探索之MOP 十 Interceptor 二

                    Groovy探索之MOP 十 Interceptor 二  在本系列的《Groovy探索之MOP 九 Interceptor 一》中,我们已经详细的介绍了一个简单的拦截器类的方方面面,使得我们初步有了拦截器的基础。本篇需要在前面的拦截器类的基础上,进一步用拦截器类来实现我们的AOP编程。首先,我们在本系列的第一篇中,所拦截的方法都是固定的方法

2009-05-07 07:53:00 1861 4

翻译 采用Groovy和Grails吗?现在就做

                                   采用Groovy和Grails吗?现在就做                                   作者:Content Team                                   4-29,2009   Rob James是Aegeon公司的CTO,是最早的一批在真实的软件

2009-05-06 07:57:00 3455

原创 Groovy探索之MOP 九 Interceptor 一

                   Groovy探索之MOP 九 Interceptor 一  近几年以来,AOP(面向方面的编程)得到了广泛的应用,我们把它应用到例如打印日志、权限控制等各个方面。而在实现AOP的时候,我们一般都借助于工具,如Spring AOP等等。当然,我们借助于工具一般都用在实现系统级的AOP上,这种实现一般都要借助于配置文档来实现。当我们需要实现较小

2009-04-30 07:59:00 2901 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 4157 1

原创 Groovy探索之MOP 八 运行期内给类和对象添加属性或方法

             Groovy探索之MOP 八 运行期内给类和对象添加属性或方法  我们都知道,在Groovy语言中,我们可以使用MOP特性在运行期内添加属性或方法。这种添加包括两个层面的添加:第一, 是给一个类添加属性或方法。也就是说,如果我们在运行期内给一个类添加了属性或方法,那么添加了以后,所有这个类实例化的对象,都将拥有了这个属性或方法。第二, 第二,是

2009-04-28 07:56:00 2738 1

原创 Groovy探索 自定义Range 三 自定义Range与责任链模式

        Groovy探索 自定义Range 三 自定义Range与责任链模式  责任链模式也是我们比较常用的一种模式,我在《Groovy探索之责任链模式》中有个探索。大家也可以在网上搜索,应该有很多这方面的文章。在这里,我们将使用自定义的Range类来实现责任链模式,使用的例子还是在《Groovy探索之责任链模式》一文中所谈到的"孙悟空大战二郎神"的这个情节。这样,我们可以

2009-04-27 08:01:00 1806

原创 Groovy探索之MOP 七 运行期内的方法和属性分析

         Groovy探索之MOP 七 运行期内的方法和属性分析  在Groovy语言里,运行期内的方法和属性分析有三种方式,它们分别是:第一, 继承自Java语言的反射方式。第二, 使用"respondsTo"和"hasProperty"方法。第三, 使用"hasMetaMethod"和"hasMetaProperty"方法。以上三种方法都能在运行期内

2009-04-24 07:54:00 2525 1

原创 Groovy探索 “as”关键字的深入使用

                 Groovy探索 "as"关键字的深入使用  在前面的系列《Groovy Tip 20  "as"关键字的用法》中,我们已经谈到了"as"关键字的一些激动人心的用法。本篇则要接着前篇的内容说下去,继续来展现"as"关键字的一些更为激动人心的用法。在前一篇中,我们谈到了"as"关键字的一个用法是进行类型转换。最常用的是形如下面的用法:    

2009-04-22 07:59:00 4604

原创 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 5590 6

原创 Groovy Tip 32 方法的参数 一

                        Groovy Tip 32 方法的参数 一  Groovy语言在方法的输入参数方面做了很多有益的工作,这些工作有些能提高代码的阅读性,有些能提供编码的方便和敏捷。在前面的文字中,我们已经陆续的介绍过一些,如《Groovy探索之Map与DSL》。在这个系列中,我们再把一些前面没有提及的一一介绍过来。首先,是关于调用方法时的括号的使用。

2009-04-21 07:53:00 4421 3

原创 Groovy探索之MOP 五 针对接口类型的动态性

Groovy探索之MOP 五 针对接口类型的动态性  这里所说的接口类型,在Java语言和Groovy语言中,当然是既包括了基类类型和接口。所谓"接口类型的动态性",指的是在运行期内给基类或接口动态的添加方法,使得基类以及它的子类、接口的实现,都能访问这些方法。这个功能一向是我比较感兴趣的一个功能。因为我们在编程的实践中,会使用各种各样的应用API,还有JDK,在使用它们的过程中,

2009-04-20 07:58:00 2703 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 3494 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除