我正在尝试使用动态参数进行自动装配,我知道我们可以使用@component声明一个类并使该类可用于自动装配,但是如果我有一个带有参数化构造函数的类怎么办。我可以使用自动装配并使用参数初始化对象吗? 请参见下面的代码段。
@Component
public class A{
public A(Object B){
// do something
}
}
public class C{
@Autowire
private A a;
public foo(){
B b = getBfromSomewhere();
// create object of A using parameter B
// like a = new A(b);
}
}
答案 0 :(得分:0)
经过配置注释后,我得到了答案。首先应该告诉spring,例如应该如何创建bean。
@Configuration
public class Appconfig{
@Bean(name="a")
public A getA(B b){
return A(b);
}
}
以后使用时。
public class C{
@Autowire
private BeanFactory factory;
public foo(){
B b = getBfromSomewhere();
A a = factory.getBean(A.class,b)
}
}