尝试从junit测试中为ResourceBundleMessageSource spring class设置一个bascursor,当测试尝试获取一条消息时,我得到了下面的“no message found under key....."。我下面有一个测试的下一个配置。MessageSourceHolder是一个静态类来保存messageSource。setBascursor参数有问题吗?。不允许使用前缀“file”?。我确实有一个message.properties文件,在“src/main/resources/i18 n”下。
AbstractResourceBasedMessageSource messageSource = new ResourceBundleMessageSource();
messageSource.setBasename("file:src/main/resources/i18n/messages");
messageSource.setFallbackToSystemLocale(false);
MessageSourceHolder.setMessageSource(messageSource);
字符串
如果我这样做,它会起作用:
File file = Paths.get("src/main/resources/i18n/messages.properties").toFile();
Properties properties = new Properties();
properties.load(new FileReader(file));
AbstractResourceBasedMessageSource messageSource = new ResourceBundleMessageSource();
messageSource.setCommonMessages(properties);
MessageSourceHolder.setMessageSource(messageSource);
型
1条答案
按热度按时间dfddblmv1#
我注意到在ResourceBundleMessageSource类文档中说:
基本名称遵循ResourceBundle约定:本质上,一个完全限定的类路径位置
所以它不允许前缀文件。类PaddableResourceBundleMessageSource意味着允许前缀,因为它遵循资源约定。