gpt4 book ai didi

java - Spring 将动态生成的值放入占位符中

转载 作者:行者123 更新时间:2023-12-01 12:56:49 28 4
gpt4 key购买 nike

我是 Spring 新手。我现在了解如何使用占位符从属性文件中读取值:

<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location" value="classpath:properties.txt"/>
</bean>

<int-mqtt:outbound-channel-adapter id="mqtt-publish"
client-id="${clientID}"
client-factory="clientFactory"
auto-startup="true"
url="${url}"
default-qos="${qos}"
default-retained="${retain}"
default-topic="${topic}" />

上面的代码一切正常...但是...是否可以将 clientID 替换为运行时(或用户输入)生成的内容,而不是从属性文件中静态读取它?

最佳答案

运行时,您的意思是每条消息都是动态的吗?

在这种情况下,不会,因为在建立连接时会使用 clientId,该连接会执行一次(或者在与服务器的连接丢失时)。

如果您打算在应用程序上下文初始化时以编程方式提供动态值,那么,是的,Spring Expression Language就是解决方案。

例如,#{myBean.myProperty} 将调用 bean myBean#{ 上的 getMyProperty() 方法myBean.someMethod()} 将调用 someMethod()

另请参阅dynamic-ftp示例,它通过在子应用程序上下文中使用属性占位符按需创建新的出站适配器,在运行时使用占位符。

关于java - Spring 将动态生成的值放入占位符中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23818328/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com