Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/400.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何自动关联期望方法引用作为其依赖项之一的bean_Java_Spring_Autowired - Fatal编程技术网

Java 如何自动关联期望方法引用作为其依赖项之一的bean

Java 如何自动关联期望方法引用作为其依赖项之一的bean,java,spring,autowired,Java,Spring,Autowired,我有一个类CustomMap,如下所示: @Component public class CustomMap<T extends Map<String, Object>> { private final Supplier<T> mapType; /** * @param mapType Lambda for creating new instances of map type */ public CustomMap(S

我有一个类CustomMap,如下所示:

@Component
public class CustomMap<T extends Map<String, Object>> {
  private final Supplier<T> mapType;

    /**
     * @param mapType Lambda for creating new instances of map type
     */
    public CustomMap(Supplier<T> mapType) {
       this.mapType = mapType;
    }
}
我有另一个类,它依赖于上面的CustomMap类:

@Component
public class A {
   private final CustomMap<MySupplier> customMap;

  public A(CustomMap<MySupplier> customMap) {
   this.customMap = customMap;
}
}

public class MySupplier extends HashMap<String, Object> {
    public MySupplier() {
    }
}
我必须以某种方式将这两个类自动连接在一起,以便spring负责初始化。我必须手动初始化类A,如下所示,我希望spring负责初始化

A a = new A(new CustomMap<> (MySupplier::new))

我建议在ApplicationConfig中为创建一个bean。例如:


您可能正在使用组件扫描,因此应该去掉@component注释,因为bean现在是在ApplicationConfig中创建的。

为什么?事实上,你使用Spring并不意味着你必须自动连接所有的东西。还有很多其他的类使用A,我必须手动初始化它们,就像我手动初始化A一样。这是很多额外的代码。
@Configuration
public class ApplicationConfig {
    @Bean
    public A a() {
        return new A(new CustomMap<> (MySupplier::new));
    }
}