文档章节

彻底摆脱配置文件 二 (开源项目zkconfigutil resolve自动生成)

book
 book
发布于 2014/03/01 01:26
字数 688
阅读 773
收藏 9

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


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


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

,选择import导入该xml即可

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

    这里假设您看过了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下,地址:cast_resolve_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@gmail.com


jerry 于2014-03-01 凌晨

© 著作权归作者所有

book

book

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

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

book
2014/03/17
125
0
zkconfigutil 1.0.1 发布,分布式系统配置项zookeeper化

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

book
2014/07/05
1K
1
彻底摆脱配置文件 七(基于linux USER2信号检查当前管理的配置项信息)

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

book
2014/08/13
468
0
彻底摆脱配置文件 一(开源项目zkconfigutil详解)

zkconfigutil介绍 它只是个工具,用于实现分布式集群间配置项的管理,虽小,但很、灰常好用,easy play 项目个性化地址http://jerrysearch.github.io/zkconfigutil/ 代码实例 /** * just tes...

book
2014/02/18
1K
3
分布式工程配置zookeeper化--zkconfigutil

分布式系统配置项zookeeper化,可实现动态更新,极大方便系统的配置管理,彻底摆脱配置文件,使用annotation实现,easy play! 这是一个非常好用的使用zookeeper配置(分布式)工程的组件,使...

book
2014/03/02
2.9K
2

没有更多内容

加载失败,请刷新页面

加载更多

面向海量数据的极致成本优化-云HBase的一体化冷热分离

前言 随着业务的持续发展,业务数据库存储量会持续增长。通常数据量过亿时,就需要考虑做分库分表,或者选择扩展能力更好的NOSQL/NewSQL数据库,如HBase就可以单表支持PB级数据,足够满足大多...

阿里云官方博客
34分钟前
4
0
最新最全国内外架构开源技术干货资料

大家好,废话不多说,整理了精心收集了各类资源。 声明,如侵犯个人利益,请联系小编,会立即删除相关资料。 领取方式在文末 求转发列表 好了,由于资源太多啦,就不一一列举了。 大家按照下...

泥瓦匠BYSocket
36分钟前
6
0
springmvc jsp访问不了css

在jsp中引入css,一直报404错误,直接访问css,也无法访问 将css文件移出WEB-INF,因为处于安全性考虑,这个目录禁止外部访问。 当引用css时,可以直接用绝对路径${pageContext.request.conte...

沉迷于编程的小菜菜
38分钟前
4
0
android 系统版本 9.1网络请求遇到坑

网络请求异常: E/http: CLEARTEXT communication to plat.xunlinkeji.cn not permitted by network security policy 在res下新建一个xml目录 创建名为network_security_config.xml 文件 ,该......

MrLins
56分钟前
5
0
Istio 1.3 发布,HTTP 遥测不再需要 Mixer

> 原文链接:Istio 1.3 发布,HTTP 遥测不再需要 Mixer Istio 是 Google、IBM 和 Lyft 联合开源的服务网格(Service Mesh)框架,旨在解决大量微服务的发现、连接、管理、监控以及安全等问题...

米开朗基杨
今天
10
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部