下面是application.properties文件
app.not.found=app with {0} name can not be found.
如何在春季用一些值替换{0}?
我正在使用以下代码读取属性文件值。
env.getProperty("app.not.found")
但未获得设置占位符值的方法。
答案 0 :(得分:2)
使用MessageFormat.format(String pattern, Object ... arguments)
。它在第二个参数中接受一个数组,该数组将顺序替换0、1、2...。
MessageFormat.format(env.getProperty("app.not.found"), obj)
obj将替换您字符串中的{0}。
答案 1 :(得分:1)
尝试这个
kubectl create -f template.yml
答案 2 :(得分:0)
如果您可以像这样修改application.properties:
app.not.found=app with ${name} name can not be found.
您可以使用系统属性(-Dname = Test)替换占位符:
@SpringBootApplication
public class DemoApplication {
@SpringBootApplication
public class DemoApplication {
@Value("${app.not.found}")
private String prop;
@PostConstruct
private void pc() {
System.out.println(prop); //Prints "app with Test name can not be found."
}
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
答案 3 :(得分:0)
docker run -it --rm --name project_run project
@Configuration
public class AppConfig {
@Bean
public ResourceBundleMessageSource messageSource() {
var source = new ResourceBundleMessageSource();
source.setBasenames("messages/label")//messages is a directory name and label is property file.;
source.setUseCodeAsDefaultMessage(true);
return source;
}
}
@Autowired
private MessageSource messageSource;