Spring XD:多个模块实例的单独配置
Spring XD: separate configuration for multiple module instances
我的 Spring XD 流定义包含对同一自定义模块的引用,但具有不同的配置参数,例如
stream create --name mystream1 --definition "tcp --port=4444 | mycustommod --myprop='very long property value 1'" | log"
stream create --name mystream2 --definition "tcp --port=5555 | mycustommod --myprop='very long property value 2'" | log"
我可以将长模块配置放入外部模块配置文件中。但这仅适用于第一个模块实例。对于我在流定义中使用的其余模块实例,我必须直接覆盖流定义中的外部化配置。
如果我有许多 [或长] 属性 值要覆盖,那会使流定义膨胀。
有没有办法将不同的模块 实例 配置放到外部配置文件中,以便保持流定义清晰?
您可以在模块配置中定义一个 属性 占位符,例如
<context:property-placeholder location="${xd.module.config.location}\processor${xd.module.name}${xd.stream.name}.properties"
ignore-resource-not-found="true" local-override="true"/>
然后在你的情况下你把你的属性放在
<module_config_location>\processor\mycustommod\mystream1.properties
<module_config_location>\processor\mycustommod\mystream2.properties
等等
我的 Spring XD 流定义包含对同一自定义模块的引用,但具有不同的配置参数,例如
stream create --name mystream1 --definition "tcp --port=4444 | mycustommod --myprop='very long property value 1'" | log"
stream create --name mystream2 --definition "tcp --port=5555 | mycustommod --myprop='very long property value 2'" | log"
我可以将长模块配置放入外部模块配置文件中。但这仅适用于第一个模块实例。对于我在流定义中使用的其余模块实例,我必须直接覆盖流定义中的外部化配置。
如果我有许多 [或长] 属性 值要覆盖,那会使流定义膨胀。
有没有办法将不同的模块 实例 配置放到外部配置文件中,以便保持流定义清晰?
您可以在模块配置中定义一个 属性 占位符,例如
<context:property-placeholder location="${xd.module.config.location}\processor${xd.module.name}${xd.stream.name}.properties"
ignore-resource-not-found="true" local-override="true"/>
然后在你的情况下你把你的属性放在
<module_config_location>\processor\mycustommod\mystream1.properties
<module_config_location>\processor\mycustommod\mystream2.properties
等等