相关疑难解决方法(0)

@Autowire奇怪的问题

自动装配时我有一种奇怪的行为

我有类似这样的代码,它的工作原理

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

@Service
@Transactional
public class Class2{
   ...
}
Run Code Online (Sandbox Code Playgroud)

问题是我需要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);
}
Run Code Online (Sandbox Code Playgroud)

用这个代码我得到了一个org.springframework.beans.factory.NoSuchBeanDefinitionException: No matching bean of type for Class2.似乎@Transitional注释与接口不兼容,因为如果我删除@Transitional注释或者mplements IServiceReference<Class3, Long>问题消失了并且注入了bean(尽管我需要在这个类中都有).如果我将注释@Transitional放在方法而不是类中,也会发生这种情况.

如果这有帮助,我使用Spring 3.0.2.

与事务方法的接口不兼容?可能是一个Spring bug?

java spring spring-mvc autowired

23
推荐指数
2
解决办法
9326
查看次数

标签 统计

autowired ×1

java ×1

spring ×1

spring-mvc ×1