У меня странное поведение при автопроводке
У меня есть подобный код, и он работает
@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
или i mplements IServiceReference<Class3, Long>
, проблема исчезает, и бин вводится (хотя мне нужно иметь оба в этом классе). Это также происходит, если я добавляю аннотацию @Transitional
в методы, а не в класс.
Я использую Spring 3.0.2, если это поможет.
Не совместим ли интерфейс с транзакционным методом?
Может ли это быть весенняя ошибка?