【发布时间】:2019-04-05 11:06:13
【问题描述】:
我有一个 springconfig.xml 文件,我曾经从 my.properties 文件中获取 bean 属性值。属性文件值动态更改。但它不会设置为 spring bean 属性。只有在我重新启动我的tomcat后它才会改变。这是我的部分 xml 代码。
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location">
<value>file:/SATHISH/apache.8.0.24/bin/my.properties</value>
</property>
</bean>
<bean id="jmsEmailTemplateBean" class="org.springframework.jms.core.JmsTemplate">
<property name="connectionFactory" ref="authenticationConnectionFactory" />
<property name="defaultDestination" ref="${queuename}" />
</bean>
如果我将 my.properties 值更改为“foo”,它将起作用。 我再次在运行时将“foo”更改为“boo”,但它不起作用。它不会分配给 ${queuename}。
我在运行时手动更改了 my.properties 值。它不会影响springconfig.xml
是否可以在运行时更改 xml 值? 提前致谢
【问题讨论】:
-
只有在重新启动服务器后,属性文件更改才会影响应用程序。如果要更改需要使用属性文件的内容,则无需进行任何代码更改。属性文件用于初始设置。请理解为什么属性文件是。
-
是的,我知道。我通过使用一些代码在运行时动态更改了这些值。属性文件(my.properties)已更新。但不会影响 springconfig.xml {queuename}。
-
它不会影响@Sathish。这就是为什么我要理解属性文件的概念。如果您要动态更新值,那么为什么不更新 java bean 本身的值?
-
为什么 java 到 props 然后 props 到 xml 然后 xml 到 java。可以直接在java中直接更新值。
-
再次说明为什么要将其设置为 xml。但是,您将使用 xml 作为 java 对象。所以你可以直接在java对象中设置它。
标签: java spring spring-config