无需自动装配的Spring服务定位器

问题描述 投票:0回答:2

具有此代码:

public class ClassA {

    private InterfaceB interfaceB;

    private int a

    private int b;

    public ClassA(int a, int b) {
       this.a = a;
       this.b = b;
    }
}

我的应用程序中可能有几个ClassA对象,它们是在运行时按需创建的。但是所有这些都应使用InterfaceB类的相同具体实现(InterfaceB的几种实现,但根据所使用的平台,在运行时仅使用一种实现)。在应用程序中(单个类)应该只有一个InterfaceB对象。

当已知interfaceBClassA构造函数参数时,由于a对象是在运行时创建的,因此我无法自动连接b。>

我如何在这里使用Spring Framework来实现服务定位器模式?我的计划是在ClassA中实例化服务定位符,并使用它来获取InterfaceB对象。

具有此代码:公共类ClassA {private InterfaceB interfaceB;私人int私人int b;公共ClassA(int a,int b){this.a = a; this.b = b; }} ...

java spring spring-boot dependency-injection service-locator
2个回答
0
投票

您可以创建其他类,这些类将创建您的ClassA,并将保留对interfaceB的引用。例如:


0
投票

我认为您不需要服务定位器模式,在现代的Spring驱动的应用程序中,通常不再需要它。

© www.soinside.com 2019 - 2024. All rights reserved.