假装我有课:
public class Person {
private final String first;
private final String last;
private final Address address;
public Person(String first, String last, Address address){
this.first = first;
this.last = last;
this.address = address;
}
public String getFirst() {
return first;
}
public String getLast() {
return last;
}
public Address getAddress() {
return address;
}
}
我有一个上述代理类:
public class PersonProxy
{
private Person person;
// --Other properties---
public PersonProxy( Person person)
{
this.person = person;
}
}
我们曾经这样创建 PersonProxy 的实例:
PersonProxy proxy = new PersonProxy(new Person("Betty", "Kale" , "some address"));
但是我们最近正在转向 Spring,并且希望在上下文文件中将这 2 个类声明为 beans,但希望在创建代理对象时在 Person 类的构造函数中动态传递这些参数。 如何在上下文文件中为这两个类声明这种 bean,以及如何使用这些 bean 来创建 PersonProxy 类的实例来替换:
PersonProxy proxy = new PersonProxy(new Person("Betty", "Kale" , "some address"));
提前致谢。
最佳答案
实现此目的的一种方法是使用 FactoryBean
,例如创建一个PersonProxyFactoryBean。请参阅this blog post有关 FactoryBeans 的更多详细信息。
关于Java:Spring:如何动态地将参数传递给构造函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42445338/