如何从静态方法填充 spring bean 的 属性
How to populate property of spring bean from static method
我想知道如何从静态方法填充 spring bean 属性。这是我的例子。我有 ClassA 和 Utils 静态方法:
public class ClassA{
private String name;
private int age;
//getters setters
}
public class Utils{
static String getRandomName(){
return "someRandomName"; //here is some logic returning random string
}
}
我想使用 Utils 静态方法 getRandomName 从 ClassA 创建 bean。像这样:
<bean class="com.example.ClassA"
p:name=//Utils.getRandomName()
p:age="33"
/>
,但我不知道如何从应用程序调用静态方法-context.xml
有一个特殊的值可以产生随机值。 random.value
将生成随机的字母数字字符串。所以你的 bean 可能看起来像:
<bean class="com.example.ClassA"
p:name="${random.value}"
p:age="33"
/>
如果您的 getRandomName()
中有额外的逻辑,那么您可以使用 Spring 表达式语言 (SpEL) 来执行表达式。例如:
<bean class="com.example.ClassA"
p:name="#{ T(com.example.Utils).getRandomName() }"
p:age="33"
/>
我想知道如何从静态方法填充 spring bean 属性。这是我的例子。我有 ClassA 和 Utils 静态方法:
public class ClassA{
private String name;
private int age;
//getters setters
}
public class Utils{
static String getRandomName(){
return "someRandomName"; //here is some logic returning random string
}
}
我想使用 Utils 静态方法 getRandomName 从 ClassA 创建 bean。像这样:
<bean class="com.example.ClassA"
p:name=//Utils.getRandomName()
p:age="33"
/>
,但我不知道如何从应用程序调用静态方法-context.xml
有一个特殊的值可以产生随机值。 random.value
将生成随机的字母数字字符串。所以你的 bean 可能看起来像:
<bean class="com.example.ClassA"
p:name="${random.value}"
p:age="33"
/>
如果您的 getRandomName()
中有额外的逻辑,那么您可以使用 Spring 表达式语言 (SpEL) 来执行表达式。例如:
<bean class="com.example.ClassA"
p:name="#{ T(com.example.Utils).getRandomName() }"
p:age="33"
/>