`
lokki
  • 浏览: 58977 次
  • 来自: ...
社区版块
存档分类
最新评论

[一些可以固化的思路]将jar开发成根据环境可变配置,可变配置的来源

    博客分类:
  • java
阅读更多
开发了一个通用功能jar,但期望他尽可能地被不同的环境使用而不改变二进制jar。
"可变配置"概念前提:已预先开发好可变点代码,能根据配置而改变。

这样收到很多好处:
(1)能适合不同公司不同人不同环节的喜好配置,让这个通用功能更容易接受。
(2)不改变二进制jar,不需经历重新编译打包这个步骤,让代码的共用程度更深入。
(3)如果没有可变配置的机制,一些使用者为了特定赋值而修改代码,让本来通用的功能而变得不通用,或抽象不出来通用。

能达到不改变二进制jar而可变配置,不容易,归根结底只有两个方法:

(1)将可变配置通过System Property传进来。这需要修改进程启动参数,加"-Dname=value"。
(2)将可变配置通过特定路径上的配置文件读进来。

完全不能“没有可变来源,但又不改变jar二进制就能实现可变配置"


而大量的可配置,则结合(1)(2):(1)指定appHome或appName,然后(2)在appHome上加上jar名相关的硬编码指定到properties文件。

比如一个有很多通用功能bundle的OSGI应用程序里,这个或那个公司或许想注册到zookeeper的路径为其喜欢的值。
或jarA想调用通用的ResourceRegister注册到pathA下,jarB想调用ResourceRegister注册到pathB下,
那ResourceRegister的basePath就应由调用者传进来。而jarA和jarB中配置的来源:分别将basePath写在本jar相关的配置文件中。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics