假设我有A类。
class A {
private String s;
public A(String s) {
this.s = s;
}
}
我想将A注入B类。
到目前为止,我一直在注入没有构造函数参数的类,例如
class B {
@Inject
private A a;
}
但是我不知道如何注入带有构造函数参数的类。 我该怎么办?
答案 0 :(得分:0)
代替此:
@Singleton
class B {
@Inject
private A a;
}
您可能有这个:
@Singleton
class B {
private A a;
public B(A a) {
this.a = a;
}
}
答案 1 :(得分:0)
我认为在您的示例A
中将是原型bean,因为它具有必须提供的参数。因为必须提供参数,所以不能像单例那样简单地注入bean。您可以注入BeanContext
并调用createBean
。例如:beanContext.createBean(A.class, "some string value")
。这就要求A
用@Prototype
注释,并且创建者应该用@Parameter
提供的任何构造函数参数。