回答(10)
2 years ago
Stacker提出了一个很好的答案,我会更进一步,使其更具动态性并使用Spring 3 EL Expression .
#{springDAOBean.getGenericListFoo()}
我试图找出如何使用util:list来实现这一点但由于转换错误而无法使其工作 .
2 years ago
导入spring util命名空间 . 然后,您可以按如下方式定义列表bean:
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:util="http://www.springframework.org/schema/util"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/util
http://www.springframework.org/schema/util/spring-util-2.5.xsd">
foo
bar
value-type是要使用的泛型类型,并且是可选的 . 您还可以使用属性 list-class 指定列表实现类 .
2 years ago
作为Jakub答案的补充,如果您打算使用JavaConfig,您也可以通过这种方式自动装配:
import com.google.common.collect.Lists;
import java.util.List;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Bean;
@Configuration
public class MyConfiguration {
@Bean
public List stages(final Stage1 stage1, final Stage2 stage2) {
return Lists.newArrayList(stage1, stage2);
}
}
2 years ago
这是一种方法:
2 years ago
之后定义那些bean(test1,test2):)
2 years ago
class="com.somePackage.SomeClass">
在SomeClass中:
class SomeClass {
private List myList;
@Required
public void setMyList(List myList) {
this.myList = myList;
}
}
2 years ago
另一种选择是使用JavaConfig . 假设所有阶段都已注册为spring bean,您只需:
@Autowired
private List stages;
和spring会自动将它们注入此列表中 . 如果您需要保留订单(上层解决方案不这样做),您可以这样做:
@Configuration
public class MyConfiguration {
@Autowired
private Stage1 stage1;
@Autowired
private Stage2 stage2;
@Bean
public List stages() {
return Lists.newArrayList(stage1, stage2);
}
}
保留顺序的另一个解决方案是在bean上使用 @Order 注释 . 然后列表将包含按升序注释值排序的bean .
@Bean
@Order(1)
public Stage stage1() {
return new Stage1();
}
@Bean
@Order(2)
public Stage stage2() {
return new Stage2();
}
2 years ago
这是如何在Spring中的一些属性中注入set:
class="biz.bsoft.processing">
2 years ago
您声明一个ListFactoryBean实例,提供要将 元素作为其值实例化为属性的列表,并为该bean提供 id 属性 . 然后,每次在特定的其他bean声明中使用声明的 id 作为 ref 或类似的时,都会实例化列表的新副本 . 您还可以指定要使用的 List 类 .
2 years ago
使用util命名空间,您将能够在应用程序上下文中将列表注册为bean . 然后,您可以重用该列表将其注入其他bean定义中 .