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

用于纯文本文件的Spring cloud配置服务器

段铭晨
2023-03-14

我遵循了下面给出的加载纯文本文件的教程:https://github.com/spring-cloud/spring-cloud-config/blob/master/docs/src/main/asciidoc/spring-cloud-config.adoc#service-plain-text

<bean id="messageSource"
        class="com.icullen.site.utils.TolerantReloadableResourceBundleMessageSource">
        <property name="basenames" value="http://localhost:8888/icullen-webapp/default/master/messages" />
        <property name="defaultEncoding" value="UTF-8" />
        <property name="cacheSeconds">
            <value>5</value>
        </property>
    </bean>

public class TolerantReloadableResourceBundleMessageSource extends
ReloadableResourceBundleMessageSource {

private static final Logger logger = LoggerFactory.getLogger(TolerantReloadableResourceBundleMessageSource.class);

@Override
protected String getMessageInternal(String code, Object[] args,
        Locale locale) {
    String messageInternal = super.getMessageInternal(code, args, locale);
    if(messageInternal == null){
        logger.warn("No translation for : {}", code);
    }
    return messageInternal != null ? messageInternal : "?" + code + "?";
}
}

在jsp中使用如下所示的spring消息调用翻译

<spring:message htmlEscape="true" code="category.${region.name}"/>

我做错了什么?我应该怎么做才能快速加载页面。我们被卡住了,请帮忙。

共有1个答案

尉迟明贤
2023-03-14

我找到了解决方案:这是我的缓存价值。我不得不将缓存设置为-1,即-cache永久。当我更改属性文件时,我调用了一个控制器,该控制器手动刷新缓存

@Controller
public class RefreshTranslationsController {

private static final Logger logger = LoggerFactory.getLogger(RefreshTranslationsController.class);

@Autowired
private TolerantReloadableResourceBundleMessageSource messageSource;


 @RequestMapping(value = "/product/refresh/translations", method = RequestMethod.GET)
 public String refreshTranslations(HttpServletRequest request, Locale locale, Model model) {
     if(userIsLoggedIn()){   
             logger.info("Loaded message source before refreshing : "+messageSource.toString());
             messageSource.clearCache();
             logger.info("Cleared message cache : ");
             messageSource.getMessage("category.FLASH", null, locale);
             logger.info("Translations Reloaded !!! ");
         }
     }else{
         throw new CullenSecurityException();
     }
     return "redirect:/product/";
 }

}

 类似资料:
  • 我试图复制http://cloud.spring.io/spring-cloud-config/spring-cloud-config.html#_serving_plain_text,服务于logback.xml文件。 接受:/ HTTP/1.1 406不可接受 Apache-Coyote/1.1服务器没有被列入黑名单 我使用的是Brixton.m5,下面是存储库结构: 工作正常。

  • 您的应用程序可能需要通用的纯文本配置文件,而不是使用Environment抽象(或YAML中的其他替代表示形式或属性格式)。配置服务器通过/{name}/{profile}/{label}/{path}附加的端点提供这些服务,其中“name”,“profile”和“label”的含义与常规环境端点相同,但“path”是文件名(例如log.xml )。此端点的源文件位于与环境端点相同的方式:与属性或

  • 部署配置文件是 Puppet 最常见的用途之一。许多服务都需要一些配置文件, 你可以让 Puppet 使用 file 资源将这些配置文件推送到客户端,如下面的代码所示: file { "/opt/nginx/conf.d/app_production.conf": source => "puppet:///modules/app/app_production.conf", } source

  • 本文向大家介绍关于linux服务器hosts文件配置详解,包括了关于linux服务器hosts文件配置详解的使用技巧和注意事项,需要的朋友参考一下 linux服务器hosts文件配置 hosts文件是Linux系统中一个负责IP地址与域名快速解析的文件,以ASCII格式保存在“/etc”目录下,文件名为“hosts”。 hosts文件包含了IP地址和主机名之间的映射,还包括主机名的别名。在没有域名

  • 是否有一种方法可以将“配置客户机”和访问文件定义为configClient.getResource(),而不是从url获取

  • 6.6.3 FlatFileItemWriter 将数据写入到纯文本文件也必须解决和读取文件时一样的问题。 在事务中,一个 step 必须通过分隔符或采用固定长度的格式将数据写出去. LineAggregator 与 LineTokenizer 接口的处理方式类似, 写入文件时也需要有某种方式将一条记录的多个字段组织拼接成单个 String,然后再将string写入文件. Spring Batch