Dubbo的SPI机制

SPI机制类似于Spring的IOC容器,实现对bean的管理。框架本身定义接口、规范,第三方只需要将自己实现在META-INF下描述清楚,那么框架就会自动加载你的实现。Dubbo的规则是在META-INF/dubbo,META-INF/dubbo/internal或者META-INF/services创建描述文件,以Property的形式对所实现的接口进行描述,比如dubbo=com.alibaba.dubbo.rpc.protocol.dubbo.DubboProtocol,就给出了Protocol接口的一个实现类,然后框架自动家在这个类。 Dubbo对这一块的实现全部都集中在类ExtensionLoader中,那么接下来将围绕这个类来介绍Dubbo插件化的实现,在介绍Dubbo插件化实施之前, »

Java中常用的模板技术

在进行web开发时,对数据进行展示是非常重要的一个环节。在基于Java开发的网站中,JSP技术是最为常见的视图展示技术。由于JSP技术是官方推荐的视图展示技术,文档相对比较丰富,所以本文不会对JSP技术进行介绍。 虽然JSP是官方推荐的视图展示技术,但是JSP依然存在一些不太尽如人意的缺点。比如,JSP中可以直接写Java代码,这使得业务逻辑和前端展示没有完全分开,这样在后期维护时将会非常麻烦。而且,如果想要在JSP中完全不使用Java代码,开发人员需要进行自定义标签的编写,这就无形中增加了开发人员的工作压力。 本文主要介绍常用的两种模板技术——即velocity和XSLT技术。velocity使用上跟JSP具有很大的相似性,但是velocity中不允许出现任何Java代码,实现了界面和Java代码真正意义上的分离。velocity和JSP,FreeMarker并称为三大视图展示技术。XSLT主要是用来对xml进行展示的一种技术,常见的比如将xml转换为html进行展示, »

常用的正则表达式符号

日常工作中会经常遇到需要读或写正则表达式的场景,但是博主记忆力实在太差,就连常用的正则表达式符号在用的时候也许现查一下。为此,我决定,把常用的正则表达式符号记录在本博文中,以备不时之需。 基本符号 字符(Characters) 字符组(Character classes) 预定义字符组(Predefined character classes) 边界匹配(Boundary matchers) ^和$非常常用,切记! 贪婪修饰符(Greedy quantifiers) »

记录一些常用的Maven命令

Maven是非常流行项目管理工具,无论在学习还是工作中都有着非常重要的作用。本片文章主要记录了一些自己在工作中常用的命令,以备不时之需。 mvn -v 显示当前maven版本信息 mvn archetype:generate 创建maven项目 mvn compile 编译项目 mvn test 运行测试 mvn package 打包maven项目 mvn install 在本地仓库中安装指定jar包 mvn clean 清楚生成文件 »

自己动手写Mock

相信做过单元测试的同学都有用过各种各样的mock工具,至于为什么要mock,网上有一大堆解释,简单来说就是当有些功能难以实现,或者有些功能在测试的时候无法访问的时候,这种情况就需要用到mock了。 当然mock的框架有很多,常用的有EasyMock, Jmockit, Mockito等,我个人感觉Mockito的接口用起来很舒服,所以较喜欢Mockito。Mockito的常用接口写法如下: Mocktio.when(list.get(1)).thenReturn(10); 接口的含义从使用方法上就可以看出来,即指定当调用某个方法的时候返回特定的结果。这个使用方法严格来讲叫Stub,关于mock,stub还有spy等名词我在这里就不解释了(其实我也解释不太清楚) »