春の地図に問題があり、涙が出ています。
私の春は次のようになります。
<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:util="http://www.springframework.org/schema/util"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.0.xsd
">
<util:map id="mockMap">
<entry key="userTest1" value="test1"/>
<entry key="userTest2" value="test2"/>
<entry key="userTest3" value="test6"/>
</util:map>
</beans>
次に、これを自動配線しているコードは次のとおりです(無関係な部分は省略されています)。
@Autowired
@Resource(name="mockMap")
Map<String, String> testMap;
@Test
public void testGetGearListActivityOK() {
for (String key : testMap.keySet()) {
System.out.println("key = " + key);
}
}
驚くべきことに、これにより、文字列タイプに一致するBeanがないというエラーが自動配線ステップで実際に発生します。ただし、単体テストでマップをマップとして定義するように変更すると、次の出力が得られます。
[junit] key = mockMap [junit] key = org.springframework.context.annotation.internalConfigurationAnnotationProcessor [junit] key = org.springframework.context.annotation.internalAutowiredAnnotationProcessor [junit] key = org.springframework.context.annotation.internalRequiredAnnotationProcessor [junit] key = org.springframework.context.annotation.internalCommonAnnotationProcessor [junit] key = systemProperties [junit] key = systemEnvironment [junit] key = messageSource [junit] key = applicationEventMulticaster [junit] key = lifecycleProcessor
エントリのキーセクションを実際にキーとして表示することはまだできていません。マップをMapに戻し、春に追加すると、IDをキーとして使用して、マップにそれらが入力されます。
私はここでとても混乱していて、過去にかなりの量の春を使用しました。一体何がここで起こっているのか誰かが手がかりを持っているなら、私は非常に感謝するでしょう。
前もって感謝します。
また、私はこの質問を見ました:utilスキーマを使用してリストを自動配線するとNoSuchBeanDefinitionExceptionが発生します
しかし、解決策は、私がすでに行っている@Resourceを使用することです。