Java 如何自动关联期望方法引用作为其依赖项之一的bean
我有一个类CustomMap,如下所示: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
@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));
}
}