自动装配时我有一个奇怪的行为
我有一个类似的代码,它可以工作
@Controller
public class Class1 {
@Autowired
private Class2 object2;
...
}
@Service
@Transactional
public class Class2{
...
}
问题是我需要 Class2 实现一个接口,所以我只更改了 Class2 所以它现在就像:
@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);
}
使用此代码,我得到一个org.springframework.beans.factory.NoSuchBeanDefinitionException: No matching bean of type for Class2
. 似乎@Transitional
注释与接口不兼容,因为如果我删除@Transitional
注释或 implements IServiceReference<Class3, Long>
问题消失并且 bean 被注入(尽管我需要在这个类中同时拥有这两者)。如果我将注释@Transitional
放在方法而不是类中,也会发生这种情况。
如果有帮助,我会使用 Spring 3.0.2。
接口与事务方法不兼容?它可能是一个春天的错误?