如何从给定类型的类/接口的类中读取依赖项并在其上执行方法?

时间:2018-06-24 23:05:26

标签: java spring

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

我的枚举对象将包含以下详细信息:标识符(用于标识),类(要执行的依赖项),方法名(要运行的方法)。

例如:-MAPPER1(“ 1”,Class1.class,“ doSomething”);

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

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

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

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

1 个答案:

答案 0 :(得分:1)

这只是来自轮胎开发商的建议。我不确定这是否对您有帮助,或者您是否能够在代码中实现此功能,但是不确定-使用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注释所有依赖类 请告诉我这是否有帮助和/或您是否需要进一步澄清。