Lombok介绍

Lombok最初我是在公司内部的broadcast上面听到有principal介绍到它的,和AspectJ归在一起。看了几个例子之后觉得有点意思,就去Lombok的官网上扒了一下。我们已经知道向AspectJ、CGLib等等都可以做到对已有Java代码在字节码层级的改变,无论是编译时期静态织入还是运行时期动态代理,对于我们使用AOP来减少那些重复性编码的劳动、增加切面性质的逻辑颇有帮助。这里有几个概念:

  • 首先是AOP,我在这里不啰嗦,网上有的是这样的文章。
  • 其次,如果你还没有接触过AspectJ,那么在Lombok之前,AspectJ是值得推荐了解的。和Lombok相比,AspectJ更强大,有它自己的

[……]阅读全文

Memcached调优

cache项目中有一个对实时响应性比较高的服务,引入了Memcached以减少延迟和减少数据库压力。但是期间遇到了一些问题,这里记录一些调优细节。 

客户端选择

  • 最开始我使用的是Memcached Java Client,但是最后放弃了,放弃原因包括:
    • 有时会出现的“No Thread For Socket”异常,我记录在这里
    • 它不支持NOREPLY模式(在这种模式下,更新缓存的set操作可以不需要Memcached服务端响应,这使得set操作非常非常快)。
  • 现在我使用的是XMemcached

统计信息

可以通过nc命令向Memcached服务端发送消息来获取统计信息,例如:

echo "

[……]阅读全文

Issue record: “No thread for socket” about Memcached

MemcachedWe own a service supplying not-real-time data to the downstream clients. In order to reduce the average latency and the pressure on database, Memcached was imported as the cluster center cache, and our service consumed it. I encountered an issue when Memcached was firstly deployed on production envi

[……]阅读全文

Ehcache详细解读

ehcache Ehcache 是现在最流行的纯Java开源缓存框架,配置简单、结构清晰、功能强大,最初知道它,是从Hibernate的缓存开始的。网上中文的EhCache材料以简单介绍和配置方法居多,如果你有这方面的问题,请自行google;对于API,官网上介绍已经非常清楚,请参见官网;但是很少见到特性说明和对实现原理的分析,因此在这篇文章里面,我会详细介绍和分析EhCache的特性,加上一些自己的理解和思考,希望对缓存感兴趣的朋友有所收获。

 

一、特性一览,来自官网,简单翻译一下:

 

1、快速轻量
过去几年,诸多测试表明Ehcache是最快的Java缓存之

[……]阅读全文

OSCache框架源码解析

OSCache是一个受到争议的开源缓存框架,OpenSymphony网站已经关闭(OpenSymphony可是诞生过Quartz、WebWork、SiteMesh和OGNL等数个非常有名的框架的)了,它也已经不维护了。在JavaEE的缓存框架领域,似乎已经是EhCache等其它支持分布式的缓存框架的天下了,OSCache垂垂老矣?但是OSCache的源代码依然值得一读,一度作为最常用的缓存框架,代码量却不大,绝大部分类一天的时间就可以详详细细地阅读完。

 

统观OSCache的代码,我最关注其中的base、algorithm、events、persistence、clustersup

[……]阅读全文

Grails引发的中文乱码问题

在一个Grails项目里面,我想写一个过滤不良信息的Service,而将过滤的规则放置在xml文件之中。

以下xml文件放置不良信息,包含单词、词组和句法,支持正则表达式:

<filter>
    <words>
        <word>fuck</word>
        <word>kill</word>
    </words>
    <phrases>
        <phrase>asshole</phrase>
    </ph

[……]阅读全文

在Eclipse中配置Grails工程

1、环境变量:

配置GRAILS_HOME,注意一定要配置到build.xml所在的文件夹:

image
2、Eclipse装上Groovy-Eclipse插件,可以使用link方式。

3、导入Grails工程,并选中"Copy projects into workspace"

4、工程的属性中,选中:

 image

这样就阻止了groovy文件被Eclipse编译成class文件。

5、工程属性的Java Build Path中,选择Libraries,选择Add Variable,添加变量GRAILS_HOME,并将其中的所有文件夹内的所有jar文件全部引入工程

[……]阅读全文

SSH学习杂记

ssh Web开发是一个很有意思的事情。Struts+Spring+Hibernate作为一种当今流行的开发模式,我很荣幸地在一周左右的时间里,疯狂地边学边琢磨了一番,甚有感触。

Struts:

Web应用程序框架统一体:PHP、ASP → Struts → JSF、Shale → Ajax

从左至右与常规桌面应用程序相似度依次提高。

clip_image002

Struts将用户表单使用FormBean打包,根据struts-config.xml里面mapping的配置送入ActionServlet,ActionServlet决定自己处理或者分发给更单一任务的Action处理。

事实上Struts的贡献主要在表示层上,对于

[……]阅读全文

back to top