【问题标题】:Setting global-property via java code通过 java 代码设置全局属性
【发布时间】:2014-02-04 02:53:27
【问题描述】:

我需要在语法上设置全局属性。从功能上讲,它应该完全按照下面的语句应该做的事情

<global-property name="host-name" value="localhost" doc:name="Global Property"/>

我相信我应该能够使用 ${host-name} 访问此属性。在这个特定的场景中,我不想从属性文件中加载属性。

【问题讨论】:

    标签: mule mule-studio anypoint-studio


    【解决方案1】:

    如果您只想解析 ${host-name} 之类的占位符,您可以使用方法 resolvePlaceholder 的自定义实现扩展 Spring PropertyPlaceholderConfigurer 类,并将其添加为 Spring bean,如下所示:

    <spring:beans>
      <spring:bean id="myConfigurer" class="my.test.MyConfigurer"/>
    </spring:beans>
    

    然后调用您的自定义 resolvePlaceholder 来解析任何未解析的属性。

    通过从消息 (message.getMuleContext()) 获取上下文或通过实现 MuleContextAware bean 在 Mule 上下文注册表中设置实际设置的属性也相当简单,但在这些情况下,该属性在解析属性占位符的时间。

    你可以这样设置属性:

    context.getRegistry().registerObject("myKey", "myVal")
    

    然后像这样访问它:

    context.getRegistry().get("myKey")
    

    【讨论】:

      猜你喜欢
      • 2023-03-02
      • 2021-12-21
      • 2018-04-09
      • 2011-07-31
      • 1970-01-01
      • 1970-01-01
      • 2016-01-29
      • 2016-02-20
      • 2012-05-24
      相关资源
      最近更新 更多