自動配線時に奇妙な動作が発生する
このような同様のコードがあり、動作します
@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
. 注釈または iを削除すると問題がなくなり、Bean が注入されるため、注釈@Transitional
はインターフェイスと互換性がないようです(ただし、このクラスには両方が必要です)。クラスではなくメソッドに注釈を入れた場合にも発生します。@Transitional
mplements IServiceReference<Class3, Long>
@Transitional
これが役立つ場合は、Spring 3.0.2 を使用します。
トランザクショナル メソッドとのインターフェイスに互換性がありませんか? 春のバグでしょうか?