我有一个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类。
A a = new A(new CustomMap<> (MySupplier::new))
答案 0 :(得分:1)
我建议在A
中为ApplicationConfig
创建一个bean。例如:
@Configuration
public class ApplicationConfig {
@Bean
public A a() {
return new A(new CustomMap<> (MySupplier::new));
}
}
您可能正在使用组件扫描,因此应删除@Component
批注,因为现在已在ApplicationConfig
中创建了bean。