gpt4 book ai didi

java - 如何在Spring中使用@PropertySource加载的属性文件中配置 'dynamic key'

转载 作者:行者123 更新时间:2023-11-30 07:52:59 31 4
gpt4 key购买 nike

使用 Spring 4 @Configuration 注释,这就是我配置属性文件并在我的应用程序中引用的方式:

src/main/resources/errors.properties

name.empty.error=name is empty
department.empty.error=department is empty

Java代码配置及使用:

@Configuration
@PropertySource("classpath:errors.properties")
public class Sample {
@Autowired
private Environment env;

public void usage() {
String errorText = env.getProperty("name.empty.error");
}

我想通过以下方式指定 error.properties 的“key”:

{0}.empty.error={0} is empty

这样usage()方法就会调用类似的东西

String errorText1 = env.getProperty("{}.empty.error", "name");
String errorText2 = env.getProperty("{}.empty.error", "department");

如何做到这一点?我记得 Struts 错误消息处理中存在类似的东西。

最佳答案

您需要使用MessageSource,它是一个用于解析消息的接口(interface)。 ResourceBundleMessageSourceMessageSource 实现,可以从属性文件中读取。

您需要配置它(我没有尝试编译源代码)

@Bean
MessageSource messageSource() {
ResourceBundleMessageSource source=new ResourceBundleMessageSource();
source.setBasenames("messages");
return source;
}

您必须连接它并在您要调用的代码中:

String errorText1 = source.getMessage("empty.error", "name", Locale.US);

在您的消息文件中您将拥有:

empty.error = {0} is empty

作为奖励,您的应用程序将准备好内部化。

关于java - 如何在Spring中使用@PropertySource加载的属性文件中配置 'dynamic key',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33089016/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com