博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
彻底摆脱配置文件 二 (开源项目zkconfigutil resolve自动生成)
阅读量:6008 次
发布时间:2019-06-20

本文共 2127 字,大约阅读时间需要 7 分钟。

hot3.png

    本人一直想把zkconfigutil推向开源,虽现在不是很完善,但也从未停止前进的步伐,最近一直在想如何解决大量resolve的编写问题,写个eclipse插件看来是比较好的做法,JET也不好弄,所以由于时间限制,短期内没有过多时间去研究eclipse插件(虽对osgi还算熟悉),也在博客中发表过想找合作伙伴开发一个eclipse插件,但也不是很容易实现,所以产生了这个模版,这个实现相对比较容易,但也不能说是万能的,有弊端,但也可以完美满足非特殊情况,请您慢慢往下欣赏!!

resolve template文件在工程template下,网络地址:

    这个模版实际上就是eclipse editor template,是个xml文件,您可以在Window -> Preferences -> Java -> Editor -> Templates

,选择import导入该xml即可

    到底什么是resolve,为什么需要resolve,请您看这篇博客

    这里假设您看过了zkconfigutil的使用或原理实现,我们知道,想对某个class的某个属性实现zookeeper配置,我们需要为每个字段都写一个自己的resolve,这个工作量非常大,并重复性严重,那么有了这个工具后,假如我有个 Demo class

@TypeZkConfigurable(path = "/test/jerry", server = "localhost:2181", useOwnZkServer = false)public final class Demo {	@FieldZkConfigurable(resolve = DemoF1Resolve.class, dynamicUpdate = true)	public static String F1 = "F1";	@FieldZkConfigurable(resolve = DemoF2Resolve.class, dynamicUpdate = true)	public static String F2 = "F2";	@FieldZkConfigurable(resolve = DemoF3Resolve.class, dynamicUpdate = true)	public static Boolean F3 = false;   }

    现在我想写F2字段的DemoF2Resolve.class,您可以在这个demo的空白位置,写个F2(必须与相应属性的名字相同,不同也可以,自己再调整),然后按eclipse的提示快捷键,一般为 ALT+/,在提示列表中会看到resolve,选择这个resolve,eclipse就会根据resolve_template.xml生成DemoF2Resolve.class了,如果您的这个属性是string类型,那么接下来就不需要做任何事情,直接可以使用

代码实例如下:

    private static final class DemoF2Resolve extends AbstractResolve {		@Override		public String resolve() {			// TODO Auto-generated method stub			return Demo.F2.toString();		}		@Override		public void dResolve(String src) {			// TODO Auto-generated method stub			Demo.F2 = src;		}	}

    ---------------------------------------------------------------------------

    添加通用resolve生成模板

cast_resolve_template.xml文件在工程template下,地址:

    自动生成resolve如下:

    public static final class DemoF3Resolve extends AbstractResolve {		@Override		public String resolve() {			// TODO Auto-generated method stub			return Demo.F3.toString();		}		@Override		public void dResolve(String src) {			// TODO Auto-generated method stub			Demo.F3 = Demo.F3.getClass().cast(src);		}	}

时候不早了,写的比较仓促,有些地方可能说的不是很清晰,希望大家有问题或有更好的实现、idea,可以在下方留言或直接联系兄弟

email:search.jerry

jerry 于2014-03-01 凌晨

转载于:https://my.oschina.net/jerrysearch/blog/204175

你可能感兴趣的文章
华尔街追逐中国机遇,阿里巴巴收盘价创下历史新高
查看>>
《CCNA安全640-554认证考试指南》——6.7节需要回忆的命令行参考信息
查看>>
Java是什么,Java是什么意思
查看>>
《IP组播(第1卷)》一1.6 组播的历史
查看>>
计算机首次通过图灵测试
查看>>
《脱颖而出——成功网店经营之道》一第2章 经营战略入门
查看>>
封装JDBC—非框架开发必备的封装类
查看>>
《FLUENT 14.0超级学习手册》——2.5 FLUENT 14.0的基本操作
查看>>
《Photoshop修色圣典——PPW专业照片修正流程与技巧》—第1章关于历史
查看>>
当我发现电脑有灵魂
查看>>
《 Apache Spark机器学习.》导读
查看>>
在openSUSE 13.1中配置FTP服务器
查看>>
如何使用 Docker 快速配置数据科学开发环境?
查看>>
《ELK Stack权威指南(第2版)》一3.6 Java日志
查看>>
C++流的streambuf详解及TCP流的实现
查看>>
《WebGL入门指南》——第1章,第1.4节本章小结
查看>>
Angular从零到一1.6 引导过程
查看>>
《iOS 6核心开发手册(第4版)》——1.1节触摸
查看>>
《C#多线程编程实战(原书第2版)》——2.5 使用AutoResetEvent类
查看>>
《量化金融R语言初级教程》一2.5 协方差矩阵中的噪声
查看>>