Java 定义一个并发散列集Springbean?

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=

在Spring中,我可以在XML中定义这样的哈希集:

<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不应该返回集合而不是映射吗?