Java Spring通过外部工厂自动创建通用bean

Java Spring通过外部工厂自动创建通用bean,java,spring,Java,Spring,我有一个通用接口和一些实现它的类,例如: interface Product { ... } class Beverage implements Product { ... } class Food implements Product { ... } ... interface Worker<T extends Product> { ... } class BeverageWorker implements Worker<Beverage> { ... } class

我有一个通用接口和一些实现它的类,例如:

interface Product { ... }
class Beverage implements Product { ... }
class Food implements Product { ... }
...

interface Worker<T extends Product> { ... }
class BeverageWorker implements Worker<Beverage> { ... }
class FoodWorker implements Worker<Food> { ... }
...
假设我有一个创建这些的通用方法,即:

BeverageWorker beverageWorker = WorkerFactory.workerFor(Beverage.class);
FoodWorker foodWorker = WorkerFactory.workerFor(Food.class);
...
是否有一种方法可以将上面的
SpringConfig
编写为泛型,以避免手动枚举所有类型

例如:

class SpringConfig {
  @Bean
  <T extends Product> Worker<T> genericWorker(Class<T> productClass) {
    return WorkerFactory.workerFor(productClass);
  }
}
class-SpringConfig{
@豆子
Worker genericWorker(类productClass){
返回WorkerFactory.workerFor(productClass);
}
}

但也要求Spring在需要类型为
Worker

的bean时调用此方法。难道您不能让您的
WorkerFactory
对象接收
Product
作为
workerFor
方法的参数吗?我不知道这是否可行,您可以编写一个注释,@Worker,注释Worker类,并在运行时使用反射APICan以某种方式实例化它们。您的
WorkerFactory
对象没有收到
Product
作为
workerFor
方法的参数吗?我不知道这是否可行,您可以编写一个注释,@Worker,注释工作类,并在运行时使用反射API以某种方式实例化它们
class SpringConfig {
  @Bean
  <T extends Product> Worker<T> genericWorker(Class<T> productClass) {
    return WorkerFactory.workerFor(productClass);
  }
}