我尝试使用请求范围初始化Spring bean,以及从不由Spring管理的另一个对象(属性)进行延迟初始化。 这是bean的定义:
@Component
@Scope(value = "request")
@Lazy
public class LazyClass {
protected String name;
}
如何创建名称'属性在运行时?
答案 0 :(得分:-1)
这可能不是最佳解决方案,但您可以将name
的值设置为System
属性,并将其放在您班级中所需的位置。
在非spring类中的某处设置值:
// myProperty is the name of the property
// name is the value you want to store
System.setProperty("myProperty",name);
进入你的班级:
// Caution: the name of the property must be the same as it was when it was set
String name = System.getProperty("myProperty);
可以在bean类的构造函数中调用get方法,因为它被标记为@Lazy
。
编辑:
另一种方法是为字段name
创建一个setter,并在需要时设置其值。