更改从属性文件中读取的 属性 值的最佳方法
Best way to alter the property value which is read from the properties files
我有一个 application.properties
文件如下
mail.content = Hey #name Good morning #name, are you a good developer?
我的JavaSpring启动代码
public class MailUtils{
@Value("${mail.content}")
String content;
//Other codes
public void sendMail(){
//Other code
String body = content.replaceAll("#name", firstName);
//reamining code
}
我需要根据 java 变量更改应用程序属性的值。为此,我正在使用 String class 替换方法。我只需要知道我们有比这更好的方法吗?如果可以,请帮我做一下?
谢谢
我会在创建 MailUtils 时更改 属性。 'firstName' 声明在哪里?
public class MailUtils {
String content;
@Value("${mail.content}")
public void setContent(String content) {
String firstname = System.getProperty("user.name");
this.content = content.replace("#name", firstname);
}
public void sendMail(){
...
}
}
看看 Java 的 MessageFormat 并使用该语法。比全部替换更强大,副作用更小。
https://docs.oracle.com/javase/1.5.0/docs/api/java/text/MessageFormat.html
在您的 application.properties 中使用 {} 占位符。
int 行星 = 7;
String event = "原力干扰";
String result = MessageFormat.format(
"At {1,time} on {1,date}, there was {2} on planet {0,number,integer}.",
planet, new Date(), event);
The output is:
At 12:30 PM on Jul 3, 2053, there was a disturbance in the Force on planet 7.
我有一个 application.properties
文件如下
mail.content = Hey #name Good morning #name, are you a good developer?
我的JavaSpring启动代码
public class MailUtils{
@Value("${mail.content}")
String content;
//Other codes
public void sendMail(){
//Other code
String body = content.replaceAll("#name", firstName);
//reamining code
}
我需要根据 java 变量更改应用程序属性的值。为此,我正在使用 String class 替换方法。我只需要知道我们有比这更好的方法吗?如果可以,请帮我做一下?
谢谢
我会在创建 MailUtils 时更改 属性。 'firstName' 声明在哪里?
public class MailUtils {
String content;
@Value("${mail.content}")
public void setContent(String content) {
String firstname = System.getProperty("user.name");
this.content = content.replace("#name", firstname);
}
public void sendMail(){
...
}
}
看看 Java 的 MessageFormat 并使用该语法。比全部替换更强大,副作用更小。
https://docs.oracle.com/javase/1.5.0/docs/api/java/text/MessageFormat.html
在您的 application.properties 中使用 {} 占位符。
int 行星 = 7; String event = "原力干扰";
String result = MessageFormat.format(
"At {1,time} on {1,date}, there was {2} on planet {0,number,integer}.",
planet, new Date(), event);
The output is:
At 12:30 PM on Jul 3, 2053, there was a disturbance in the Force on planet 7.