@ Autowire seltsames Problem

Ich habe ein seltsames Verhalten beim automatischen Verdrahten

Ich habe einen ähnlichen Code wie diesen, und es funktioniert

@Controller
public class Class1 {
    @Autowired
    private Class2 object2;
    ...
}

@Service
@Transactional
public class Class2{
   ...
}

Das Problem ist, dass ich brauche, dass die Class2 eine Schnittstelle implementiert, so dass ich nur die Class2 geändert habe, so dass es jetzt so ist:

@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);
}

it diesem Code bekomme ich einorg.springframework.beans.factory.NoSuchBeanDefinitionException: No matching bean of type for Class2. Es scheint, dass@Transitional Annotation ist nicht kompatibel mit der Schnittstelle, weil, wenn ich das @ entfern@Transitional Annotation oder das implements IServiceReference<Class3, Long> Das Problem verschwindet und die Bohne wird injiziert (obwohl ich beide in dieser Klasse haben muss). Es passiert auch, wenn ich die Anmerkung@Transitional in den Methoden statt in der Klasse.

Ich verwende Spring 3.0.2, wenn dies hilft.

Ist die Schnittstelle nicht mit der Transaktionsmethode kompatibel? Kann es ein Frühlingswanze sein?

Antworten auf die Frage(6)

Ihre Antwort auf die Frage