可变参数自动装配
Var args Autowire
我想自动连接 bean,它们是我的构造函数的 var args 参数。
我能做到吗,如果可以,我该如何实现?
这是我正在尝试的代码:
Public class ServiceImpl implements Service{
private Set<Rules> rules = new HashSet<Rules>();
public ServiceImpl(Rules... args) {
for (Rules r : args) {
rules.add(r);
}
}
//...
}
我正在尝试注入 spring-config.xml
,如下所示:
<bean id = "check" class="ServiceImpl">
<constructor-arg ref="notEmpty"></constructor-arg>
<constructor-arg ref="check"></constructor-arg>
</bean>
有没有一种方法可以通过注释实现这一点,而无需在此处传递 constructor args
。
是的,通过注解,您可以将@Autowired 添加到构造函数,IoC 容器将连接在上下文中注册的所有规则实例:
@Component
public class ServiceImpl implements Service{
private Set<Rules> rules = new HashSet<Rules>();
@Autowired
public ServiceImpl(Rules... args) {
for (Rules r : args) {
rules.add(r);
}
}
}
我想自动连接 bean,它们是我的构造函数的 var args 参数。
我能做到吗,如果可以,我该如何实现?
这是我正在尝试的代码:
Public class ServiceImpl implements Service{
private Set<Rules> rules = new HashSet<Rules>();
public ServiceImpl(Rules... args) {
for (Rules r : args) {
rules.add(r);
}
}
//...
}
我正在尝试注入 spring-config.xml
,如下所示:
<bean id = "check" class="ServiceImpl">
<constructor-arg ref="notEmpty"></constructor-arg>
<constructor-arg ref="check"></constructor-arg>
</bean>
有没有一种方法可以通过注释实现这一点,而无需在此处传递 constructor args
。
是的,通过注解,您可以将@Autowired 添加到构造函数,IoC 容器将连接在上下文中注册的所有规则实例:
@Component
public class ServiceImpl implements Service{
private Set<Rules> rules = new HashSet<Rules>();
@Autowired
public ServiceImpl(Rules... args) {
for (Rules r : args) {
rules.add(r);
}
}
}