spring 自动装配特定类型的所有bean
例子
如果您具有同一接口的多个实现,则Spring可以将它们全部自动装配到一个集合对象中。我将使用一个使用Validator模式的示例1
Foo类别:
public class Foo {
private String name;
private String emailAddress;
private String errorMessage;
/** Getters & Setters omitted **/
}界面:
public interface FooValidator {
public Foo validate(Foo foo);
}名称验证器类:
@Component(value="FooNameValidator")
public class FooNameValidator implements FooValidator {
@Override
public Foo validate(Foo foo) {
//验证逻辑在这里。
}
}电子邮件验证程序类别:
@Component(value="FooEmailValidator")
public class FooEmailValidator implements FooValidator {
@Override
public Foo validate(Foo foo) {
//这里有不同的验证逻辑。
}
}现在,您可以将这些验证器单独或一起自动连接到一个类中。
界面:
public interface FooService {
public void handleFoo(Foo foo);
}班级:
@Service
public class FooServiceImpl implements FooService {
/** Autowire all classes implementing FooValidator interface**/
@Autowired
private List<FooValidator> allValidators;
@Override
public void handleFoo(Foo foo) {
/**You can use all instances from the list**/
for(FooValidator validator : allValidators) {
foo = validator.validate(foo);
}
}
}值得注意的是,如果您在SpringIoC容器中有一个以上接口的实现,并且未指定要与@Qualifier注释一起使用的接口,那么Spring在尝试启动时会抛出异常,因为它不知道使用哪个实例。
1:这不是进行这种简单验证的正确方法。这是有关自动装配的简单示例。如果您想要一个更简单的验证方法的想法,请查看Spring如何使用批注进行验证。
热门推荐
10 诗词送行祝福语大全简短
11 新房开工吉日祝福语简短
12 50多岁生日简短祝福语
13 安徽疫情祝福语简短英语
14 农民朋友发财祝福语简短
15 对生活祝福语简短精辟
16 搬家词简短祝福语朋友
17 女神结婚快乐祝福语简短
18 文学短句祝福语大全简短