文档章节

彻底摆脱配置文件 四(基于反射的通用resolve详解)

book
 book
发布于 2014/04/02 13:11
字数 559
阅读 165
收藏 0

    之前虽然提供了生成通用resolve的template,改善了代码开发的代价,但生成的resolve过多,导致代码长度过度增长,使用ReflectResolve便可解决这个问题。

    目前resolve从使用方式上有两种情况:

  1. @FieldZkConfigurable(resolve = DemoResolve.DemoF1Resolve.class, dynamicUpdate = true)
    public static String F1 = "F1"
  2. @FieldZkConfigurable(dynamicUpdate = true)
    public static String F2 = "F2";
    
    @FieldZkConfigurable(dynamicUpdate = true)
    public static Boolean F3 = false;

    第一种,明确指定resolve,采用这种方式会比较灵活,一对一对应字段F1,逻辑可以自己方便控制,甚至可以加上一些逻辑而不是简单的赋值。

    第二种,没有指定resolve,采用默认的ReflectResolve,这种方式减少代码的编写,及缓解代码的膨胀,这个resolve,采用反射机制,所以其有一定的局限性,但基本可以满足90%的需求,目前支持字段类型为:String、Long、Integer、Float、Double、Short、Boolean、及自定义类型VisualType(VisualType的子类),从本人测试的效果看,同样非常稳定。


    第二种方式在使用上大大简化了开发者的开发工作,如果您的配置不需要自动动态更新,dynamicUpdate=true都可以去掉,最后只剩下一个简单的注解,即可实现属性的zookeeper配置。

@FieldZkConfigurable
public static Boolean F4 = true;

    

    为了满足大多数用户的需求,除了java中可以使用valueOf方法反序列化的类型之外,还提供了VisualType类型,从名字上看大家应该明白了,就是“可视化类型”,只要您的属性类型继承自VisualType,并重写valueOf和toString方法也可通过ReflectResolve实现zookeeper配置当然也可动态更新。

    最新代码可以从项目主页获取,欢迎大家试用,并提供宝贵意见,当然也非常愿意您的加入!!!


jerry 于 2014-04-02 13:08

© 著作权归作者所有

book

book

粉丝 41
博文 22
码字总数 15217
作品 2
海淀
高级程序员
私信 提问
彻底摆脱配置文件 二 (开源项目zkconfigutil resolve自动生成)

本人一直想把zkconfigutil推向开源,虽现在不是很完善,但也从未停止前进的步伐,最近一直在想如何解决大量resolve的编写问题,写个eclipse插件看来是比较好的做法,JET也不好弄,所以由于时...

book
2014/03/01
781
0
彻底摆脱配置文件 三(开源项目zkconfigutil通用resolve自动生成)

系列文章见本人博客 castresolvetemplate.xml文件在工程template下,地址:castresolve_template public static final class DemoF3Resolve extends AbstractResolve { @Overridepublic Stri......

book
2014/03/17
127
0
系统的学习大数据分布式计算spark技术

我们在学习一门技术的时候一定要以系统的思维去学习,这样的话,不仅对你的提高有很大的帮助,也可以让你高效的使用这个技术。 对于学习spark,当然也是要以系统的思维去全面的学习。这篇博客...

tangweiqun
2017/09/24
0
0
彻底摆脱配置文件 七(基于linux USER2信号检查当前管理的配置项信息)

基于linux USER2信号检查zkconfigutil当前管理的配置信息 当zkconfigutil管理的配置项过多时,我们也不确定是否有漏配置的,这个功能可以理解为配置项检查。 基于linux signal实现,使用起来...

book
2014/08/13
469
0
zkconfigutil 1.0.1 发布,分布式系统配置项zookeeper化

zkconfigutil 1.0.1 发布,这是第一个正式版,zkconfigutil 是一个零侵入、采用注解机制、基于javaagent,完美实现分布式服务zookeeper化配置的工具,与eclipse zookeeper插件搭配非常完美!...

book
2014/07/05
1.6K
1

没有更多内容

加载失败,请刷新页面

加载更多

如何将使用PuTTYgen(Windows)生成的SSH密钥对转换为ssh-agent和Keychain(Linux)使用的密钥对

我使用PuTTYgen生成密钥对并使用Pageant登录,因此我必须在系统启动时输入一次密码短语。 我如何在Linux中实现这一目标? 我听说过keychain但我听说它使用了不同的密钥对格式 - 我不想更改我...

javail
13分钟前
13
0
应用监控

SpringBootMonitor 文档 单机监控SpringBoot应用指标。

miaojiangmin
30分钟前
43
0
WCF - 如何增加邮件大小配额

我有一个WCF服务,它从数据库返回1000条记录到客户端。 我有一个ASP.NET WCF客户端(我在asp.net Web应用程序项目中添加了服务引用以使用WCF)。 运行客户端应用程序时收到以下消息: 已超出...

技术盛宴
今天
52
0
toast组件单元测试

先看是否存在 describe('Toast', () => { it('存在.', () => { expect(Toast).to.be.exist }) }); 看属性,我们要测 ToastVue 和 plugin.js describe('Toast', () =>......

ories
今天
67
0
开源矿工系统内部的层

开源矿工系统内部的层 所谓“层”、“界”、“域”、“集合”,这些词其实是在试图表达物质系统的组成结构和运动景象中的规矩,这些不同人发明的词都是来源于对同一个规律的观察、发现、表达...

NTMiner
今天
88
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部