首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用外部.cfg文件,而不是在构建时定义属性文件

使用外部.cfg文件,而不是在构建时定义属性文件
EN

Stack Overflow用户
提问于 2013-06-18 02:27:33
回答 2查看 3.2K关注 0票数 2

我们的项目使用的是Apache Camel和FuseESB,我们也使用了Spring。现在,我们有一些在构建项目时定义的属性文件(使用Maven)。

我们希望将属性文件移动到每个系统上的外部文件(dev/qa/prod),并将其用作属性文件。

我正在试着弄清楚我该怎么做。当然还有更多,但这与我相信的问题有关。我一直在看Camel documentation,但我还是有点困惑,不知道该怎么做。

我正在研究这个问题的post,似乎我想在我的Spring xml文件中使用这种类型的配置。

我只需要一些一般的指导,谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-06-19 04:26:54

对于外部配置,您需要查看OSGI cm属性占位符;

下面是有关此here的一些信息

若要覆盖在cm:property-placeholder块中定义的默认属性,您需要提供一个外部文件,该文件与您为文件类型'.cfg‘提供的唯一persistent-id属性值相匹配。

例如,如果您想要部署到Karaf;则此配置将被放入${KARAF_HOME}/etc/yourPID.cfg

Spring DM和Blueprint都提供了此功能

票数 2
EN

Stack Overflow用户

发布于 2013-06-19 15:13:49

您还可以考虑设置Fuse Fabric

交换矩阵中的每个服务器(容器)都配置了指定的配置文件,而不是手动编辑.cfg文件。例如,myprofile-dev、myprofile-qa、myprofile-prod。

这会将fabric配置文件中的属性(例如foo=bar)直接插入到cm属性占位符中,您的蓝图配置将与AlanFoster在其答案中所描述的基本相同。

这里有一些关于Fabric Profiles的信息。

特别是当您运行许多服务器和环境时,fabric配置文件是管理部署和配置的好方法。

请注意,我不完全确定这如何解决您的spring vs蓝图问题。我选择完全放弃spring,并将所有DI和bean移到blueprint中,从而避免了spring与blueprint的冲突,并将属性的配置完全保留在blueprint中。

我不确定你是否想要废除spring --也许你更喜欢保留它,在这种情况下,我可以建议你看看页面底部的连接Spring和Camel属性持有者的部分:Camel: Using Property Placeholder (我自己还没有尝试过,ymmv)。

祝好运!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17154267

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档