无法从Spring XML加载HashMap的值

时间:2017-03-24 21:03:08

标签: java xml spring spring-boot hashmap

我为hashmap编写了一个xml文件 有两个问题,xml文件显示红叉,但当鼠标指针悬停在它上面时,也不会出现错误消息,也不会出现问题'节。
第二个问题是,它编译得很好,但值键值不会传递给hashmap对象。类中的HashMap对象仍为' null'

Here you can see the red-cross

哈希映射的XML是:

<bean id="GateKeeper" class="com.smarttrade.domain.GateKeeper"/>

<bean id="ClientToRateMap" class="java.util.HashMap">
    <constructor-arg>
        <map key-type="java.lang.String" value-type="java.lang.Integer">
            <entry key="A" value=1 />
            <entry key="B" value=2 />
            <entry key="C" value=3 />
            <entry key="D" value=4 />
        </map>
    </constructor-arg>
</bean>

和班级是

public class GateKeeper {

    @Resource
    @Qualifier("ClientToRateMap")
    HashMap<String, Integer> ClientToRateMap;

    public void ApplyRateLimitPerClient(ClientRequestEntity client) {
        System.out.println(ClientToRateMap);     // Ouput is NULL
    }
}

2 个答案:

答案 0 :(得分:0)

很可能是地图已创建,但未注入,因为您的xml中没有<annotation-config/>

答案 1 :(得分:0)

要解决代码中的两个问题,请按照以下步骤操作:

(1)您需要在xml中定义spring命名空间,如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="
       http://www.springframework.org/schema/beans
      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">

<!-- add your beans here -->

</beans>

(2)为了弹出容器找到你的bean,你需要用GateKeeper

标记你的@Component班级