有没有一种方法可以注入其构造函数在micronaut中具有参数的类?

时间:2019-11-23 11:27:07

标签: java micronaut

假设我有A类。

class A {
    private String s;

    public A(String s) {
        this.s = s;
    }
}

我想将A注入B类。

到目前为止,我一直在注入没有构造函数参数的类,例如

class B {

    @Inject
    private A a;
}

但是我不知道如何注入带有构造函数参数的类。 我该怎么办?

2 个答案:

答案 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提供的任何构造函数参数。