que tienen un comportamiento extraño cuando Autowiring@Autowire extraño problema
Tengo un código similar como éste, y funciona
@Controller
public class Class1 {
@Autowired
private Class2 object2;
...
}
@Service
@Transactional
public class Class2{
...
}
El problema es que necesito que la Clase 2 implementa una interfaz de modo Sólo he cambiado la Clase 2 por lo que es ahora 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);
}
con este código consigo un org.springframework.beans.factory.NoSuchBeanDefinitionException: No matching bean of type for Class2
. Parece que la anotación @Transitional
no es compatible con la interfaz porque si elimino la anotación @Transitional
o el i mplements IServiceReference<Class3, Long>
el problema desaparece y se inyecta el bean (aunque necesito tener ambos en esta clase). También sucede si pongo la anotación @Transitional
en los métodos en lugar de en la Clase.
Uso Spring 3.0.2 si esto ayuda.
¿No es compatible la interfaz con el método transaccional? ¿Puede ser un error de primavera?
Básicamente lo mismo que dije :) –