@Autowire strange problem
Eu tenho um comportamento estranho ao autowiring
Eu tenho um código semelhante como este, e funciona
@Controller
public class Class1 {
@Autowired
private Class2 object2;
...
}
@Service
@Transactional
public class Class2{
...
}
O problema é que eu preciso que o Class2 implemente uma interface, então apenas alterei o Class2, para que agora seja como:
@Controller
public class Class1 {
@Autowired
private Class2 object2;
...
}
@Service
@Transactional
public class Class2 implements IServiceReference<Class3, Long>{
...
}
public interface IServiceReference<T, PK extends Serializable> {
public T reference(PK id);
}
com este código eu recebo umorg.springframework.beans.factory.NoSuchBeanDefinitionException: No matching bean of type for Class2
. Parece que@Transitional
anotação não é compatível com a interface, porque se eu remover o@Transitional
anotação ou oimplements IServiceReference<Class3, Long>
o problema desaparece e o feijão é injetado (embora eu precise dos dois desta classe). Também acontece se eu colocar a anotação@Transitional
nos métodos em vez de na classe.
Eu uso o Spring 3.0.2 se isso ajudar.
A interface não é compatível com o método transacional? Pode ser um bug da Primavera?