使用泛型类型参数自动装配类的特定实例
如果你有一个带有泛型类型参数的接口,那么 Spring 可以使用它来自动实现实现你指定的类型参数的实现。
接口:
public interface GenericValidator<T> {
public T validate(T object);
}
Foo Validator 类:
@Component
public class FooValidator implements GenericValidator<Foo> {
@Override
public Foo validate(Foo foo) {
//Logic here to validate foo objects.
}
}
Bar Validator 类:
@Component
public class BarValidator implements GenericValidator<Bar> {
@Override
public Bar validate(Bar bar) {
//Bar validation logic here
}
}
你现在可以使用类型参数自动装配这些验证器,以确定要自动装配的实例。
接口:
public interface FooService {
public void handleFoo(Foo foo);
}
类:
@Service
public class FooServiceImpl implements FooService {
/** Autowire Foo Validator **/
@Autowired
private GenericValidator<Foo> fooValidator;
@Override
public void handleFoo(Foo foo) {
foo = fooValidator.validate(foo);
}
}