我正在尝试编写代码。消息输入处理程序将接收消息并在枚举对象的帮助下确定其工作。
我的枚举对象将包含详细信息,例如标识符(用于标识),类(要执行哪种依赖项),MethodName(运行哪种方法)。
例如: - MAPPER 1.1“,Class 1.class,”doSomething“);
我有消息处理程序读取有效负载,使用标识符来标识枚举,从枚举中获取依赖类型和方法,然后执行它。
我的目的是确保映射(类的标识符)在某处硬编码,因此下一个开发人员可以轻松地跟踪和理解它。
你能帮助我如何从我当前的类中读取依赖项,找到正确的依赖项然后运行它?或者Spring / Java中是否有任何其他选项可以帮助我解决这个问题。
我正在使用spring框架和java的组合。
只是一个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
注释所有依赖类请告诉我这是否有帮助和/或您是否需要进一步澄清。