@ 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?