当前位置: 首页 > 知识库问答 >
问题:

如何从Spring MessageSource手动重新加载属性文件

司空福
2023-03-14

对于spring framework,我想手动重新加载属性文件中的数据。实际上,当我手动运行这个servlet文件时,我必须编写一个重新加载servlet来手动重新加载数据。

我已经为MessageSource定义了Spring配置。

<bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource"
        p:basename="classpath:/message" />

但不希望在特定时间段自动加载,例如,设置时可以自动加载:

<bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource"
            p:basename="classpath:/message"
            p:cacheSeconds="1" />

我以前尝试过clear缓存(),但没有自动加载。

共有2个答案

贾骏
2023-03-14

我不知道,你的意思是手动重新加载属性文件。Spring已经提供加载属性文件如下。

在spring配置文件中配置属性文件。例如,applicationContext。xmlSpringbeans。xml

<util:properties id="MY_CONFIG" location="classpath:MY_CONFIG.properties"/>

在你的sping bean中,注射如下

@Resource(name = "MY_CONFIG")
private Properties properties;

你的servlet调用spring bean。

使现代化

如果您想直接从Servlet或其他类加载文件

在Servlet/JSP中加载属性文件

亢胤运
2023-03-14

它现在正在工作。需要将messageSource注入servlet文件并调用clearCache()。它会清除以前的属性数据并重新加载更新的属性文件。

在重新加载servlet中。JAVA

ReloadableResourceBundleMessageSource rs = Global.getBean("messageSource", ReloadableResourceBundleMessageSource.class);
rs.clearCache();

在全球。JAVA

private static ApplicationContext context;

public static <T> T getBean(String s, Class<T> type) {
        return context.getBean(s, type);
}

谢谢。

 类似资料:
  • 我在尝试添加

  • 问题内容: 我有一个申请。在运行文件夹下,还有一个附加的配置文件: 应用程序启动时,它将使用文件中的值并将其注入到: 问题:如何触发这些属性的重新加载?我希望能够在运行时更改配置,并更新字段(也许可以通过在应用程序内部调用servlet 触发更新)。 但是如何? 问题答案: 使用下面的bean每1秒重新加载config.properties。 你的主要配置如下所示: 而不是使用@Value,每次你

  • 问题内容: 我在Spring 3中使用属性文件。当Spring初始化其contex时,它将加载属性文件,并将其放入带有@Value批注的所有bean中。 我希望有可能更新文件中的某些属性,并在服务器上公开一个JMX,该JMX将新属性重新加载到Spring中-无需重新启动服务器并重新加载其上下文。 我可以通过使用一些 Spring方法 来重新加载属性并将其填充到所有bean中来实现此功能,还是应该自

  • 问题内容: 我希望对我在Spring中涉及到属性文件的问题有所帮助。所以我的设置是这样的: opto-mapping.properties –该文件位于我的src文件夹中,其中包含针对我的优化资源的翻译,如下所示: 每次运行“优化”构建时,都会更新此属性文件。然后我用 将属性文件导入所需的jsp中。然后通过使用以下内容引用内容: 除了属性文件需要重新启动tomcat重启外,所有这些工作都很漂亮。我

  • 是否可以从服务器加载Spring Boot配置。json文件,而不是。亚马尔。房产?从文档来看,这是不支持开箱即用的——我想知道这是否可能,如果可能的话,人们将如何着手呢?