我使用Spring,我有以下bean声明
Catalog
private Map<String, Product> products;
我想用@Configuration
声明bean在我声明的java类中
@Bean(name="product_01")
public Product product_01() {
return new Product("0596009208","Head First Java","ea",new Float(26.07),22);
}
现在我想声明bean目录为地图分配产品bean product_01。
这个初始化是对的吗?
@Bean(name="catalog")
public Catalog catalog() {
Catalog catalog1 = new Catalog();
products.put(product_01().getSku(), product_01());
catalog1.setProducts(products);
return catalog1;
}
创建bean目录时,我得到NullPointerException。
我想在地图产品中注入product_01。
答案 0 :(得分:0)
两个选项。
1
@Bean(name="catalog")
public Catalog catalog(Product product_01) {
products.put(product_01().getSku(), product_01());
}
2。正如@Deinum所说,你可以做到
@Autowired
private Map<String, Product> products;
在这种情况下,Spring将以名称为键
自动装配所有产品实例答案 1 :(得分:0)
除了上面提到的内容之外,请务必在将语句products = new HashMap<String,Product>()
作为示例之前初始化地图