Occasionally I've noticed interesting thing:
I've implemented spring Converter
interface:
@Component
public class MyConverter implements Converter<MyClass1, MyClass2> {
@Override
public MyClass2 convert(MyClass1 source) {
// doesn't matter
}
}
In controller I autowire it like this
@Autowire
Converter<MyClass1, MyClass2> myConverter;
Surprise but spring inject proper class.
According my information spring autowires beans in runtime. Also I know that in Runtime generic types erasure.
I am tried to understand Spring soure but it hard for me.
Can you explain idea how does spring resolve this situation?