假装我有一个班级:
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并希望将这两个类声明为上下文文件中的bean,但是想要在创建代理对象时动态地在Person类的构造函数中传递这些参数。 如何在上下文文件中为这两个类声明那种bean,以及如何使用要替换的bean来创建PersonProxy类的实例:
PersonProxy proxy = new PersonProxy(new Person("Betty", "Kale" , "some address"));
谢谢你的到来。
答案 0 :(得分:1)
一种方法是使用FactoryBean
,例如创建PersonProxyFactoryBean
。有关FactoryBeans的更多详细信息,请参阅this blog post。
答案 1 :(得分:0)
创建人物: Person person = context.getBean(Person.class," Betty"," Kale"," some address");
然后创建PersonProxy: PersonProxy proxy = context.getBean(PersonProxy.class,person);