- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我定义了以下 Spring bean:
<bean id="messageSource"
class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
<property name="basenames">
<list>
<value>classpath:messages</value>
</list>
</property>
</bean>
Controller :
@Controller
public class EuserController {
@Inject
MessageSource messageSource;
@RequestMapping(value="/euser/{empId}", method=RequestMethod.DELETE)
public @ResponseBody String deleteEeuserById(@PathVariable(value="empId") Integer id) {
return messageSource.getMessage("deleteEuser.success", null, LocaleContextHolder.getLocale());
}
}
而且效果很好。但是当我试图替换时:
org.springframework.context.support.ReloadableResourceBundleMessageSource
与:
org.springframework.context.support.ResourceBundleMessageSource
我得到一个 org.springframework.context.NoSuchMessageException
。
当使用 org.springframework.context.support.ResourceBundleMessageSource
时会发生什么?
最佳答案
ReloadableResourceBundleMessageSource
是 ResourceBundleMessageSource
的替代品能够在应用程序运行时刷新消息。它也更强大,因为您不仅限于类路径上的包,还可以从其他位置加载文件。
当使用 ResourceBundleMessageSource
时,您需要在进行更改时重新启动您的应用程序,因为 ResourceBundleMessageSource
不会在您更改它们时重新加载您的包。 classpath:
前缀也需要删除。这是因为这两个类的工作方式:
ResourceBundleMessageSource
使用 JDK 类来完成它的工作:ResourceBundle
.它委托(delegate)它加载包。基本上,您提供给 ResourceBundleMessageSource
的包必须符合 ResourceBundle
期望和处理的内容。 ResourceBundle
不知道如何处理 classpath:
前缀,因此失败。
ReloadableResourceBundleMessageSource
另一方面“更聪明”,知道如何从其他地方加载包,而不仅仅是类路径。它适用于 Spring 类:Resource
. There are various implementations out of the box .当你给 ReloadableResourceBundleMessageSource
一个包时,因为它可以从不同的地方加载文件,你必须明确位置并说“我的文件在类路径上”。 You say that by adding the classpath:
prefix and Spring knows how to handle it .
关于java - NoSuchMessageException - Spring ReloadableResourceBundleMessageSource 与 ResourceBundleMessageSource,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27878418/
如果可以通过 Spring 自动解析嵌套属性,我需要帮助。我正在使用 Spring 4.2.4、Java 8 并且属性文件看起来像- # messages.properties company.nam
我有一个 JSP-Tagfile,它呈现 html-header 并定义我的 Javascript/Stylesheet 资源。 "/> "> ... 现在我不想为 java
我正在尝试以编程方式配置 Spring MVC 而不是 xml 文件。几乎一切都工作正常,但我在 ResourceBundleMessageSource 声明方面遇到了麻烦。 我的配置类如下所示: @
我目前正在使用以下代码,该代码运行正常: /WEB-INF/resources/lang/lang
消息包: 这里是名为 messages.propertie 的文件 greeting=hi! 然后使用消息标签: 属性标签中的值(即“message”)应该与我的属性文件名(即“mess
我正在尝试设置一些消息捆绑。我有 2 个文件: message.properties message_en_US.properties bean 类: 实现: msgSrc.getM
我在 /resources 中有两个语言文件: mymessage_de.properties mymessage_en.properties 我想创建一个消息包,如果无法解析包,则默认情况下应回退到
有人可以向我解释 PropertyPlaceholderConfigurer 和 ResourceBundleMessageSource 之间的区别吗?什么时候用第一个,什么时候用后者? 最佳答案 P
我配置了 appstrings.properties 文件,其中包含与我的应用程序使用的主题相关的字符串。我的应用程序有两个主题。两者都有自己的 appstrings.properties 文件,位于
我正在学习 Spring 。我尝试使用 ResourceBundleMessageSource,这是我尝试过的示例。 主应用 public class MainApp { public sta
您好,我正在尝试在我的 Spring MVC Web 应用程序中配置消息源。 我目前已经让它与 ReloadableResourceBundleMessageSource 一起运行,但我无法让它与 R
我不明白为什么我必须创建bean ResourceBundleMessageSource, public class AppConfig { @Bean public ResourceBundleMe
我想模仿 Grails 的方式来解析 i18n 消息。 在 WEB-INF/i18n/我有以下目录: admin/messages_EN.properties admin/messages_FR.pr
我有将近一百个这样的属性 NotEmpty.order.languageFrom=Field Language can't be empty NotEmpty.order.langua
我定义了以下 Spring bean: classpath:messages Controller : @Contr
所以帮助回答这个问题Thymeleaf + Spring (not Boot) - how to show messages from messageSource 我发现如果您使用Reloadable
我正在尝试从 jar 文件加载 message.properties 文件,但它没有找到该文件(我已经尝试了几个小时)。 messages/mes
我在 Spring MVC 文件的 xml 文件中定义了一个 ResourceBundleMessageSource bean。定义如下: 但是Intellij将defaultEnco
我是一名优秀的程序员,十分优秀!