代码之家  ›  专栏  ›  技术社区  ›  daemon54

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

  •  -1
  • daemon54  · 技术社区  · 6 年前

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

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

    1 回复  |  直到 6 年前
        1
  •  1
  •   Sauhard Sharma    6 年前

    只是一个提罗开发者的建议。我不确定这是否会对您有所帮助,甚至不确定您是否能够在代码中实现这一点,但这里是-使用工厂来实际获取依赖关系。您可以使所有依赖项实现一个公共接口,然后将一个标识符(在您的情况下,我认为是枚举)传递给工厂,并使用applicationContext获取所需的be an。

    @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 请告诉我这是否有帮助和/或你是否需要更多的澄清。