目录
对于泛型接口的实现类的注入,Spring会自动帮我们识别我们需要的是哪个实现类。
1. 设计泛型接口
public interface GenericValidator<T> {
public T validate(T object);
}
2. 设计实现类
@Component
public class FooValidator implements GenericValidator<Foo> {
@Override
public Foo validate(Foo foo) {
//Logic here to validate foo objects.
}
}
@Component
public class BarValidator implements GenericValidator<Bar> {
@Override
public Bar validate(Bar bar) {
}
}
3. 注入使用。
当我们指定泛型接口的参数时,Spring会自动匹配对应的实现来注入。
@Service
public class FooServiceImpl implements FooService {
@Autowired
private GenericValidator<Foo> fooValidator;
@Override
public void handleFoo(Foo foo) {
foo = fooValidator.validate(foo);
}
}