我有 2 个 Maven 项目、一个网络应用程序和一个“服务”项目。我正在使用弹簧将所有东西连接在一起。我想在我的 application-context.xml 中创建一个地图,并将其注入我的班级。当我尝试启动我的 Web 应用程序时,我收到一条错误消息。
这是我的课:
@Named("tranformer")
public class IdentifierTransformerImpl implements IdentifierTransformer {
private Map<String, String> identifierMap;
@Inject
public IdentifierTransformerImpl(
@Named("identifierMap")
final Map<String, String> identifierMap) {
this.identifierMap= identifierMap;
}
和 application-context.xml:
xmlns:util="http://www.springframework.org/schema/util"
xsi:schemaLocation="
http://www.springframework.org/schema/util
http://www.springframework.org/schema/util/spring-util-3.0.xsd"
<util:map id="identifierMap" map-class="java.util.HashMap">
<entry key="Apple" value="fruit"/>
<entry key="BlackBerry" value="fruit"/>
<entry key="Android" value="robot"/>
<util:map>
<context:component-scan base-package="com.example" />
我收到以下错误:
..... No matching bean of type [java.lang.String] found for dependency [map with value type java.lang.String]: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@javax.inject.Named(value=identifierMap)
当我在我的应用程序上下文中定义一个字符串并且构造函数将它注入到一个类中时,这有效,我怎样才能对地图做同样的事情?