【问题标题】:How to do Spring constructor injection with multiple parameters如何使用多个参数进行Spring构造函数注入
【发布时间】:2011-12-02 16:28:57
【问题描述】:

假设我们有一个类 A,和 B。在 B 的构造函数中,不仅需要 A,还需要一些其他的 String/boolean 值。例如

@Componenet(value = "B")
@DependsOn(value = "A")
public class B{
    ...
}
public B(A a_instance, String name1, String name2, boolean b1){
    ...
}

我知道使用注释。但不确切知道,应该如何处理这些字符串/布尔值?

【问题讨论】:

    标签: java spring code-injection


    【解决方案1】:

    您的问题并不完全清楚。您的 B 构造函数似乎在 B 类之外。除此之外,假设没有其他构造函数,那么您将无法工作,因为 Spring 将寻找默认构造函数。我认为您要问的是,如果您想@Autowired 该构造函数在其中获取字符串和布尔值,该怎么办。如果是这样,你想要这样的东西:

    @Component
    public class B {
        @Autowired
        public B(A a,
                 @Value("${some.property.1}") String name1,
                 @Value("${some.property.2}") String name2,
                 @Value("${some.property.3}") boolean b1) {
            ...
        }
    }
    

    在这种情况下,@Value 的行为有点像 @Qualifier 如果您有多个 A 类型的 bean。

    【讨论】:

    • 对不起,我是Spring新手,没有说清楚。谢谢:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-03-27
    • 1970-01-01
    • 1970-01-01
    • 2016-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多