将 hashmap 定义为 bean
Defining a hashmap as a bean
我正在尝试将 HashMap 定义为蓝图上的 bean xml。原来的问题是我有
<bean id="class1" class="com.acme.Class1">
<property name="acmeMap">
<map>
<entry-key="coyotte" value="Poor Fellow"/>
<entry-key="roadRunner" value="Sadistic Bird"/>
</map>
</property>
</bean>
而且效果很好。问题是当我在同一个蓝图 xml 文件上还有另一个 class 扩展 Class1,例如 Class1a 时。
<bean id="class1a" class="com.acme.Class1a">
<property name="acmeMap">
<map>
<entry-key="coyotte" value="Poor Fellow"/>
<entry-key="roadRunner" value="Sadistic Bird"/>
</map>
</property>
</bean>
这意味着定义地图两次并且必须在蓝图上维护它xml。有没有办法实例化,比如像
<bean id="acmeMap" class="java.util.HashMap"/>
并使用我需要的值对其进行初始化,然后在其他 bean 上导入引用?这意味着 acmeMap 只创建一次。我确实在 Internet 上搜索了初始化蓝图 bean 映射的示例,但找不到。或者也许解决方案是别的?
您可以使用父标签来指定继承并控制 class 中定义的属性。您可以重复使用相同的或定义新的 one.You 可以参考下面的示例。
<bean id="bean1" class="MyBean">
<property name="attrib1" value="val1" />
<property name="attrib2" value="val2" />
</bean>
<bean id="bean2" parent="bean1">
<property name="attrib3" value="val3" />
<property name="attrib4" value="val4" />
</bean>
我正在尝试将 HashMap 定义为蓝图上的 bean xml。原来的问题是我有
<bean id="class1" class="com.acme.Class1">
<property name="acmeMap">
<map>
<entry-key="coyotte" value="Poor Fellow"/>
<entry-key="roadRunner" value="Sadistic Bird"/>
</map>
</property>
</bean>
而且效果很好。问题是当我在同一个蓝图 xml 文件上还有另一个 class 扩展 Class1,例如 Class1a 时。
<bean id="class1a" class="com.acme.Class1a">
<property name="acmeMap">
<map>
<entry-key="coyotte" value="Poor Fellow"/>
<entry-key="roadRunner" value="Sadistic Bird"/>
</map>
</property>
</bean>
这意味着定义地图两次并且必须在蓝图上维护它xml。有没有办法实例化,比如像
<bean id="acmeMap" class="java.util.HashMap"/>
并使用我需要的值对其进行初始化,然后在其他 bean 上导入引用?这意味着 acmeMap 只创建一次。我确实在 Internet 上搜索了初始化蓝图 bean 映射的示例,但找不到。或者也许解决方案是别的?
您可以使用父标签来指定继承并控制 class 中定义的属性。您可以重复使用相同的或定义新的 one.You 可以参考下面的示例。
<bean id="bean1" class="MyBean">
<property name="attrib1" value="val1" />
<property name="attrib2" value="val2" />
</bean>
<bean id="bean2" parent="bean1">
<property name="attrib3" value="val3" />
<property name="attrib4" value="val4" />
</bean>