如何从给定类型的Class / Inteface的类中读取我的依赖项并对其执行方法?

问题描述 投票:-1回答:1

我正在尝试编写代码。消息输入处理程序将接收消息并在枚举对象的帮助下确定其工作。

我的枚举对象将包含详细信息,例如标识符(用于标识),类(要执行哪种依赖项),MethodName(运行哪种方法)。

例如: - MAPPER 1.1“,Class 1.class,”doSomething“);

我有消息处理程序读取有效负载,使用标识符来标识枚举,从枚举中获取依赖类型和方法,然后执行它。

我的目的是确保映射(类的标识符)在某处硬编码,因此下一个开发人员可以轻松地跟踪和理解它。

你能帮助我如何从我当前的类中读取依赖项,找到正确的依赖项然后运行它?或者Spring / Java中是否有任何其他选项可以帮助我解决这个问题。

我正在使用spring框架和java的组合。

java spring
1个回答
1
投票

只是一个tyro开发人员的建议。我不确定这是否会对您有所帮助,甚至您是否能够在代码中实现这一点,但是这里 - 使用Factory实际获得依赖。您可以使所有依赖项实现一个公共接口,然后将标识符(在您的情况下我认为是Enum)传递给工厂,并使用ApplicationContext获取所需的bean。

@Configuration
public class ServiceFactory {

@Autowired
ApplicationContext ctx;

public YourDependency createDependency(String identifier) {

    YourDependency yourDependency= null;

    switch (identifier) {
    case "1":
        yourDependency = ctx.getBean(YourDependency1.class);
        break;
    case "2":
        yourDependency = ctx.getBean(YourDependency2.class);
        break;
    case "3":
        yourDependency = ctx.getBean(YourDependency3.class);
        break;
    }
    return yourDependency;
}
}

并使用@Component注释所有依赖类请告诉我这是否有帮助和/或您是否需要进一步澄清。

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