Java 是否可以使用Spring配置创建集合?
假设我有一个类Java 是否可以使用Spring配置创建集合?,java,spring,collections,inversion-of-control,Java,Spring,Collections,Inversion Of Control,假设我有一个类MyClass,它可以用String实例化,也可以在类中有预定义的静态实例 大概是这样的: public class MyClass { public final static MyClass A = new MyClass("A"); public final static MyClass B = new MyClass("B"); public final static MyClass C = new MyClass("C"); ... pub
MyClass
,它可以用String
实例化,也可以在类中有预定义的静态实例
大概是这样的:
public class MyClass {
public final static MyClass A = new MyClass("A");
public final static MyClass B = new MyClass("B");
public final static MyClass C = new MyClass("C");
...
public MyClass(String name) {
...
}
}
可以在Spring配置中创建ArrayList
bean吗?差不多
<bean id="sequence" class="...ArrayList">
<member class="...MyClass" value="A"/>
<member ... />
....
</bean>
....
更新1
是否可以用以下方式书写:
<bean id="sequence" class="...ArrayList">
<constructor-arg>
<list>
<bean class="...MyClass" constructor-arg="A"/>
<bean class="...MyClass" constructor-arg="B"/>
<bean class="...MyClass" constructor-arg="C"/>
</list>
</constructor-arg>
</bean>
是。您甚至可以将其创建为一个独立的bean。有关两个示例,请参见。是。您甚至可以将其创建为一个独立的bean。请参阅以获取两个示例。您应该查看spring IOC文档中的部分
<bean id="moreComplexObject" class="example.ComplexObject">
<property name="someList">
<list>
<value>a list element followed by a reference</value>
<ref bean="myDataSource" />
</list>
</property>
</bean>
后跟引用的列表元素
您应该看看spring IOC文档中的部分
<bean id="moreComplexObject" class="example.ComplexObject">
<property name="someList">
<list>
<value>a list element followed by a reference</value>
<ref bean="myDataSource" />
</list>
</property>
</bean>
后跟引用的列表元素
您可以执行以下操作:
<bean id="myClassA" class="org.foo.MyClass">
<constructor-arg>
<bean class="java.lang.String">
<constructor-arg value="A"/>
</bean>
<constructor-arg>
</bean>
<bean id="sequence" class="java.util.ArrayList">
<constructor-arg>
<list>
<ref bean="myClassA" />
...
</list>
</constructor-arg>
</bean>
...
但是,请注意,最常见的方法是将列表直接注入bean,而不是首先将列表包装到列表中。您可以执行以下操作:
<bean id="myClassA" class="org.foo.MyClass">
<constructor-arg>
<bean class="java.lang.String">
<constructor-arg value="A"/>
</bean>
<constructor-arg>
</bean>
<bean id="sequence" class="java.util.ArrayList">
<constructor-arg>
<list>
<ref bean="myClassA" />
...
</list>
</constructor-arg>
</bean>
...
但是,请注意,最常见的方法是直接将列表注入bean,而不是首先将列表包装在列表中。我认为您会发现这很有用:我认为您会发现这很有用:引用元素是否可能比引用完整bean语法更容易?是的,bean引用方法允许更容易地添加新bean。请参阅更新。是否可以比完整bean语法更容易地引用元素?是的,bean引用方法允许更容易地添加新bean。请参阅更新。