tôi có thể làm điều này trong applicationContext của tôi với mùa xuân (3.0.5):thể tạo HashMap với mùa xuân nhưng không thể tạo Bản đồ
<bean id="map" class="java.util.HashMap" scope="prototype" >
<constructor-arg>
<map key-type="java.lang.String" value-type="java.lang.String">
<entry key="Key 1" value="1" />
<entry key="Key 2" value="2" />
</map>
</constructor-arg>
</bean>
Và trong điều khiển của tôi, tôi có thể autowired bản đồ của tôi như thế này:
@Autowired
@Qualifier("map")
private HashMap<String, String> map;
Nó hoạt động tốt, nhưng nếu tôi làm điều này:
@Autowired
@Qualifier("map")
private Map<String, String> map;
tôi nhận được rằng:
Nguyên nhân: org.springframework.beans.factory.NoSuchBeanDefinitionException: Không phù hợp với đậu các loại [java.lang.String] tìm thấy cho sự phụ thuộc [bản đồ với kiểu giá trị java.lang.String]: dự kiến tại ít nhất 1 đậu mà đủ điều kiện làm ứng viên autowire cho sự phụ thuộc này. Phụ thuộc chú thích: {@ org.springframework.beans.factory.annotation.Autowired (bắt buộc = true), @ org.springframework.beans.factory.annotation.Qualifier (value = bản đồ)}
My câu hỏi là: Tại sao tôi không thể tự động bản đồ của mình với giao diện khi tôi có thể thực hiện?
Cảm ơn.
không có một id đậu của bản đồ, đó là khó hiểu – NimChimpsky
vấn đề thực sự là: bản đồ không phải là một mùa xuân đậu ở tất cả các nơi đầu tiên. dịch vụ nên là đậu, dữ liệu không nên. Nếu bạn thực sự muốn có một bean bản đồ, hãy tạo một bean chứa một bản đồ và tiêm nó. –
@SeanPatrickFloyd tại sao bạn không thể tiêm bất cứ thứ gì và nhận trợ cấp. Không có tác dụng tiêu cực nào? (giả sử bạn đặt tên mô tả) – NimChimpsky