当前位置: 首页 > wzjs >正文

网站模板系统网站快照优化公司

网站模板系统,网站快照优化公司,彬县网站,福州网站设计培训前言 在写项目配置国际化的时候,因为我有多个模块项目:common、admin、image等,各自模块都有i18n的文件。 但在配置MessageSource的时候发现只能加载一个文件,其他文件被丢弃了,导致code会找不到。 后面在stackoverf…

前言  

      在写项目配置国际化的时候,因为我有多个模块项目:common、admin、image等,各自模块都有i18n的文件。

      但在配置MessageSource的时候发现只能加载一个文件,其他文件被丢弃了,导致code会找不到。

      后面在stackoverflow中找到了相关文章对其进行解释了:

https://stackoverflow.com/questions/3888832/does-spring-messagesource-support-multiple-class-path

1、原版写法(错误):

@Bean
public MessageSource messageSource() {ReloadableResourceBundleMessageSource messageSource = new ReloadableResourceBundleMessageSource();messageSource.setBasenames("classpath*:i18n/messages");messageSource.setDefaultEncoding("UTF-8");messageSource.setUseCodeAsDefaultMessage(true);return messageSource;
}

原因解释: 

         classpath* 语法是 Spring 的一种机制,它允许代码为给定路径加载多个资源。非常方便。然而, ResourceBundleMessageSource 使用标准的 java.util.ResourceBundle 来加载资源,这是一种更简单、更简单的机制,它将加载给定路径的第一个资源,并忽略其他所有内容。

2、解决方法

         自定义一个类SmReloadableResourceBundleMessageSource,继承ResourceBundleMessageSource 类,去重写 refreshProperties 方法,该方法支持两种类型的 basenames(classpath*: 和 /WEB-INF/)。

public class SmReloadableResourceBundleMessageSource extends ReloadableResourceBundleMessageSource {private static final String PROPERTIES_SUFFIX = ".properties";private PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();@Overrideprotected PropertiesHolder refreshProperties(String filename, PropertiesHolder propHolder) {if (filename.startsWith(PathMatchingResourcePatternResolver.CLASSPATH_ALL_URL_PREFIX)) {return refreshClassPathProperties(filename, propHolder);} else {return super.refreshProperties(filename, propHolder);}}private PropertiesHolder refreshClassPathProperties(String filename, PropertiesHolder propHolder) {Properties properties = new Properties();long lastModified = -1;try {Resource[] resources = resolver.getResources(filename + PROPERTIES_SUFFIX);for (Resource resource : resources) {String sourcePath = resource.getURI().toString().replace(PROPERTIES_SUFFIX, "");PropertiesHolder holder = super.refreshProperties(sourcePath, propHolder);properties.putAll(holder.getProperties());if (lastModified < resource.lastModified())lastModified = resource.lastModified();}} catch (IOException ignored) {}return new PropertiesHolder(properties, lastModified);}
}

之后再去替换ReloadableResourceBundleMessageSource 类。

  @Beanpublic MessageSource messageSource() {SmReloadableResourceBundleMessageSource messageSource = new SmReloadableResourceBundleMessageSource();messageSource.setBasenames("classpath*:/i18n/messages");messageSource.setDefaultEncoding("UTF-8");messageSource.setUseCodeAsDefaultMessage(true); // 当找不到key时,返回codereturn messageSource;}

http://www.dtcms.com/wzjs/458254.html

相关文章:

  • 广东网络公司网站建设seo推广哪家公司好
  • 宿迁网站建设公司网站排名优化工具
  • 网站和小程序的区别网络营销主要特点有哪些
  • iis打开网站变成下载企业网站的推广方法有哪些
  • 夏邑县百城建设提质网站google首页
  • 自己建网站程序媒介
  • 网站如何做外链每日一则新闻摘抄
  • 新手建设html5网站广告联盟广告点击一次多少钱
  • 网站建设应该怎么做webview播放视频
  • 哈尔滨精致网站建设企业文化理念
  • wordpress数据库主机名武汉seo哪家好
  • 免费ppt模板大全免费下载网站百度电脑网页版
  • 搜索引擎优化实训心得账号seo是什么
  • 卖高仿名牌手表网站seocms
  • 深圳网站设计哪家快聊城疫情最新消息
  • 网站优化两大核心要素是什么seo优化的方法
  • 做冻品海鲜比较大的网站有哪些快速开发网站的应用程序
  • 宁波网站建设公司哪家好掌门一对一辅导官网
  • 德州哪里做网站seo网站免费优化软件
  • 建设银行网站会员有什么用找索引擎seo
  • 做网站设计师优化推广网站推荐
  • 网站 策划友情链接的网站图片
  • 安陆网站建设seo课程总结怎么写
  • 怎么做淘客网站推广网站推广策划思路
  • 深圳贷款网站建设百度后台登录
  • 新企业网站应该怎么做SEO优化网络服务提供商是指
  • wordpress排版教程视频seo外链购买
  • wordpress自己评论八上数学优化设计答案
  • 广州网站建设平台小米市场营销案例分析
  • 邢台做网站企业湖南seo网站策划