【发布时间】:2012-12-07 15:41:42
【问题描述】:
我一直在尝试将 hashmap 注入到一个类中。根据这篇文章:Auto-wiring a List using util schema gives NoSuchBeanDefinitionException 我应该使用@Resource 而不是@Autowire 作为地图。
我的代码如下所示:
@Configurable
public class MyClass
{
@Resource(name="myMap")
private Map<String,String> myMap = new HashMap<String, String>();
我的配置如下所示:
<context:annotation-config/>
<context:component-scan base-package="com.MyClass"/>
<util:map id="myMap"
key-type="java.lang.String"
value-type="java.lang.String">
<entry key="k1" value="v1"/>
<entry key="k2" value="v2"/>
</util:map>
应用程序启动正常,但是当我尝试运行引用 MyClass 的代码时,我收到以下 WebSphere 错误:
有没有办法将地图注入到我在 WebSphere 中的类中?
(使用 Spring 2.5、WebSphere 7)
之前,我曾尝试使用此代码按名称自动装配:
@Configurable(autowire=Autowire.BY_NAME, preConstruction=true)
public class MyClass
{
@Qualifier("myMap")
@Autowired(required=true)
private Map<String,String> myMap = new HashMap<String, String>();
并使用此配置:
<context:annotation-config/>
<context:component-scan base-package="com.MyClass"/>
<util:map id="myMap"
key-type="java.lang.String"
value-type="java.lang.String">
<entry key="k1" value="v1"/>
<entry key="k2" value="v2"/>
</util:map>
结果是我尝试自动装配的字段为空。
【问题讨论】:
-
在使用 WAS8.5 插件从 RSA 迁移到 Eclipse Neon 后,在同一个 WAS 上运行的应用程序也遇到了同样的问题。到目前为止我一无所知。不过,它确实适用于具有相同配置的同事。
标签: java spring websphere websphere-7 autowired