Na injeção de interface, o método setter é fornecido por uma interface que é implementada pelo bean no qual vamos injetar a dependência. Exemplo:
package some.package;
public class Car implements EngineMountable {
private Engine engine;
@Override //dependency injection
public void mount(Engine engine){
this.engine = engine;
}
}
public interface EngineMountable {
void mount(Engine engine);
}
O mesmo está funcionando para mim na primavera, aplicando a seguinte configuração:
<bean name="car" class="some.package.Car">
<property name="mount" ref="engineObject" />
</bean>
Em alguns sites, as pessoas dizem que a primavera não suporta injeção de interface, mas para mim o exemplo acima funciona na primavera. Como por mim: spring suporta injeção de interface.
Referência: Martin Fowler: Injeção de interface