messages中的展示信息呢?

  中实现可重载的MessageSource简明教程原创 2017年09月28日引言: 在Spring Boot中messages中定义的信息,如果发生变更,则需要重启应用。那该如何实现才可以不重启应用的情况下替换messages中的展示信息呢?本文将给出一个简要的教程。
  
  的资源配置与读取在之前的文章中,已经介绍过了如何在Spring Boot中进行资源的配置和读取以及相应的测试代码,感兴趣的读者,可以参照Spring Boot中支持i18n简明教程。
  
  2 可重载的在Spring中定义了ReloadableResourceB www.thd1956.com/ undleMessageSource类,提供可自动刷新的Messages更新,即用户在无需重载应用的前提下,可以自动更新线上系统的messages展示信息。
  
  在其API文档中,其描述到如下信息:翻译为中文的信息如下:与JDK中的ResourceBundleMessageBundle相比,这个类使用Properties实例作为自定义的message存储结构,通过PropertiesPersister策略从Spring中Resource加载messages,同时也支持基于特定字符编码加载messages信息。 同时他也将检查xml的属性文件。
  
  从命名上也可以感知到其余我们默认使用的MessageSource实例对象,都是实现了同一个接口MessageSource,所以他们的使用接口和调用方式是一致的。
  
  3 覆盖Override实例根据网络上的教程,首先读取spring.messages的属性信息:这里只使用了3个属性,分别对应application.properties的属性信息,在初始化自定义的MessageSource实例中进行设置。
  
  然后覆盖Spring Boot默认的对象实例需要基于@Bean来声明某个对象实例:}之前的测试代码无需修改;但是在测试中一直在提示以下异常:从异常信息可以感知到,在Messages中并未找到对应的message,但是messages的资源文件并未变动,那问题出在哪里呢?
  
  经过分析,大概率应该是自定义的MessageSource实例已经被覆盖,但是我们在使用调用之时,并未获取争取的对象实例:那该如何解决呢?
  
  4 修复无法获取正确实例的问题4.1 设置实例对象获取顺序告诉Spring容器在基于同种类型加载实例之时,优先加载基于的对象实例。
  
  于是,我们声明覆盖对象的代码就变更为:}测试之后,可以正常获取message信息。
  
  4.2 基于实例的名称指定加载另外,我们还可以基于@Bean指定名称,然后在@Aut www.88qusheng.cn owired加载实例之时,基于实例名称来加载相应的实例。
  
  声明对象的代码在@Bean中增加一个命名:}在加载Me www.yiqianou.cn ssageSource之时,需要基于@Qualifier指定对象命名:然后经过测试,功能正确。
  
  5 总结提供非常简单易用的扩展机制,但是在自定义扩展之时,需要格外注意是否加载所期望的实例,这个需要进行通过@Primary或者@Bean的命名机制来指定解决冲突的问题。

时间: 2024-10-17 03:59:00

messages中的展示信息呢?的相关文章

持续集成 解决 Jenkins 中无法展示 HTML 样式的问题

对于测试报告来说,除了内容的简洁精炼,样式的美观也很重要.常用的做法是,采用HTML格式的文档,并搭配CSS和JS,实现自定义的样式和动画效果(例如展开.折叠等). 在Jenkins中要展示HTML文档,通常采用的方式有两种: 使用HTML Publisher Plugin: 使用Files to archive功能,在Build Artifacts中显示HTML文档链接. 第一种方式配合插件,可以通过图形化操作实现简易配置,并且展示效果也不错:而第二种方式的优势在于使用Jenkins自带的功能

HTTP中header的信息讲解以及设置

HTTP消息中header头部信息的讲解 本文导读:HTTP消息包括客户机向服务器的请求消息和服务器向客户机的响应消息.这两种类型的消息由一个起始行,一个或者多个头域,一个只是头域结束的空行和可选的消息体组成.HTTP的头域包括通用头,请求头,响应头和实体头四个部分.每个头域由一个域名,冒号(:)和域值三部分组成 HTTP Request的Header信息 1.HTTP请求方式 如下表: GET 向Web服务器请求一个文件 POST 向Web服务器发送数据让Web服务器进行处理 PUT 向Web

过滤/var/log/messages中的net-snmp日志

Net-snmp的日志默认记录在/var/log/messages中,由于大多是snmp与远端主机的连接信息,且很多,影响了其他系统日志的查看,故可用本文的方法把snmp的日志从/var/log/messages中分离出来. 修改snmp-options参数实现: #vi /etc/sysconfig/snmpd.options OPTIONS="-LS2d -Lf /tmp/snmpd.log -p /var/run/snmpd.pid -a" 表示把snmp的日志输出到/tmp/s

.net中保存用户信息的九种方法

.net中保存用户信息的九种方法 在ASP.NET中,有几种保持用户请求间数据的途径--实际上太多了,使没有经验的开发者对在哪个特定的环境下使用哪个对象很困惑.为了回答这个问题,需要考虑下面三个条件: .谁需要数据? .数据需要保持多长时间? .数据集有多大? 通过回答这些问题,你能决定哪个对象为保持ASP.NET应用程序请求间数据提供了最佳的解决方案.图1列出了不同的状态管理对象并描述了什么时候使用它们.ASP.NET中添加了四个新的对象:Cache.Context.ViewState和Web

#IT明星不是梦# 如何在微信中发布动态信息

1.内容简介 本文介绍一种信息发布方案,可将您的数据发布到微信,可在后端随时更新数据,能做到数据更新的前后端联动,从而让信息发布更方便.更高效. 2.什么是动态信息 在企业营销及服务活动中,有很多信息需要发布与推广.微信不仅传播速度快,而且范围广,是很好的宣传载体.但普通的微信发文有个缺点,文章一旦发表就定稿了,无法修改更新,因此只适合静态信息的发布,如:新闻报道.科普知识.人物事迹等. 现实生活中,很多信息是动态的,是经常变化的.比如,商家的促销清单,其内容不是固定的,随时都可能要调整:影剧院

iOS利用HealthKit框架从健康app中获取步数信息

微信和QQ的每日步数最近十分火爆,我就想为自己写的项目中添加一个显示每日步数的功能,上网一搜好像并有相关的详细资料,自己动手丰衣足食. 统计步数信息并不需要我们自己去实现,iOS自带的健康app已经为我们统计好了步数数据 我们只要使用HealthKit框架从健康app中获取这个数据信息就可以了 这篇文章对HealthKit框架进行了简单的介绍:http://www.cocoachina.com/ios/20140915/9624.html 对HealthKit框架有了简单的了解后我们就可以开始了

去除hadoop启动过程中的警告信息

安装完hadoop后启动hadoop 会报一个Warning.解决办法 vi  /etc/profile 进入编辑模式,添加下面这行 export HADOOP_HOME_WARN_SUPPRESS=1 保存退出 立即生效:source /etc/profile 重新启动hadoop 消除警告成功! 去除hadoop启动过程中的警告信息,布布扣,bubuko.com

01-查询Oracle中所有用户信息

[[email protected] ~]# su - oracle [[email protected] ~]$ sqlplus /nolog SQL*Plus: Release 10.2.0.1.0 - Production on Tue Jul 8 21:47:01 2014 Copyright (c) 1982, 2005, Oracle.  All rights reserved. SQL> conn /as sysdba; Connected. 查询Oracle中所有用户信息 1.查

使用crash提取vmcore中预分析信息

一.介绍 在linux系统内核发生崩溃或者服务器hang住时,Kdump(kernel crash dump:内核崩溃转储设备)生成vmcore文件,通过分析vmcore信息判断原因,而 crash是一个被广泛应用的内核奔溃转储文件分析工具,前提系统必须安装crash工具和内核调试工具kernel-debuginfo. 二.工具的安装与调试 1.安装包的版本,要与linux内核一致,查看linux内核版本: #uname -a 2.安装.配置.启动kdump:       安装kdump: