有价值的自动装配

时间:2018-04-25 12:52:47

标签: spring-mvc autowired

有没有办法使用从父类指定的构造函数值来自动装配bean。

示例:

class ParentClass {

    @Autowired
    ChildClass childClass;

}

class ChildClass {

    @Autowired
    childClass(SessionFactory sessionfactory) {..}

}

我想在我的父类中有两个bean - 一个用于sessionfactory的限定符'A',另一个用于sessionfactory的限定符'B'。

有没有办法在Java中实现这个目标?

我想有类似的东西

class ParentClass {

    @Autowired (something to pass value a)
    ChildClass childClassWithA;


    @Autowired  (something to pass value b)
    ChildClass childClassWithB;
}

有没有办法将构造函数值从父传递给子而不创建两个单独的子类?

1 个答案:

答案 0 :(得分:0)

您可以使用@Qualifier注释。

class ParentClass {

    @Qualifier("childClassWithA")
    @Autowired
    ChildClass childClassWithA;

    @Qualifier("childClassWithB")
    @Autowired
    ChildClass childClassWithB;

}

可以在@Component / @Service注释中指定限定符值,也可以使用@Bean注释和@Qualifier指定。

作为后备,Spring使用bean名称作为默认限定符值。