Java 定义一个并发散列集Springbean?
在Spring中,我可以在XML中定义这样的哈希集:Java 定义一个并发散列集Springbean?,java,xml,spring,spring-mvc,web.xml,Java,Xml,Spring,Spring Mvc,Web.xml,在Spring中,我可以在XML中定义这样的哈希集: <bean id="subscriberStore" class="java.util.HashSet"/> 我可以在代码中执行以下操作来创建并发哈希集: subscriberStore = Collections.newSetFromMap( new ConcurrentHashMap<Subscriber, Boolean>()); subscriberStore=
<bean id="subscriberStore" class="java.util.HashSet"/>
我可以在代码中执行以下操作来创建并发哈希集:
subscriberStore = Collections.newSetFromMap(
new ConcurrentHashMap<Subscriber, Boolean>());
subscriberStore=Collections.newSetFromMap(
新的ConcurrentHashMap());
但是,在XML中有没有一种方法可以一步完成这项工作?例如,类似于:
<bean id="subscriberStore" class="java.util.HashSet"/>
< Some code here to set subscriberStore to the result
of Collections.newSetFromMap(new ConcurrentHashMap<Subscriber, Boolean>? >
<此处的一些代码用于将subscriberStore设置为结果
集合的集合。newSetFromMap(新的ConcurrentHashMap?>
非常感谢!Bean配置:
<!-- The bean to be created via the factory bean -->
<bean id="exampleBean"
factory-bean="myFactoryBean"
factory-method="createInstance"/>
<bean id="myFactoryBean" class="com.rory.ConcurrentHashMapFactory"/>
工厂级:
public class ConcurrentHashMapFactory {
public Set<Subscriber> createInstance() {
Collections.newSetFromMap(new ConcurrentHashMap<Subscriber, Boolean>());
}
}
公共类ConcurrentHashMapFactory{
公共集合createInstance(){
Collections.newSetFromMap(新的ConcurrentHashMap());
}
}
Bean配置:
<!-- The bean to be created via the factory bean -->
<bean id="exampleBean"
factory-bean="myFactoryBean"
factory-method="createInstance"/>
<bean id="myFactoryBean" class="com.rory.ConcurrentHashMapFactory"/>
工厂级:
public class ConcurrentHashMapFactory {
public Set<Subscriber> createInstance() {
Collections.newSetFromMap(new ConcurrentHashMap<Subscriber, Boolean>());
}
}
公共类ConcurrentHashMapFactory{
公共集合createInstance(){
Collections.newSetFromMap(新的ConcurrentHashMap());
}
}
您可以使用以下内容:
<bean
id="subscriberStore"
class="java.util.Collections"
factory-method="newSetFromMap"
>
<constructor-arg>
<bean class="java.util.concurrent.ConcurrentHashMap" />
</constructor-arg>
</bean>
但是,如果泛型类型对您很重要,请创建一个自定义的静态工厂方法(正如his中所建议的那样)。您可能需要查看一些有关泛型和Spring XML bean定义的信息。您可以使用以下方法:
<bean
id="subscriberStore"
class="java.util.Collections"
factory-method="newSetFromMap"
>
<constructor-arg>
<bean class="java.util.concurrent.ConcurrentHashMap" />
</constructor-arg>
</bean>
但是,如果泛型类型对您很重要,请创建一个自定义的静态工厂方法(就像his中建议的那样)。您可能想查看一些有关泛型和Spring XML bean定义的信息。谢谢,但是createInstance不应该返回集合而不是映射吗?谢谢,但是createInstance不应该返回集合而不是映射吗?