私は Java アプリケーションで Spring を使用しています。これまですべての @Autowired アノテーションが機能していました。
簡単な例は次のとおりです。
@Component
public class MyBean implements MyInterface {
...
}
@Component
public class MyOtherBean {
@Autowired
private MyBean myBean;
...
}
アプリケーションを起動しようとすると、次のようになります。
java.lang.IllegalArgumentException: Can not set MyBean field MyOtherBean.myBean to $ProxyXX
- このインターフェイスには、公開されているシンプルなメソッドが 2 つだけ含まれており、クラスはそれらを実装しています。
- どちらのクラスもパブリックであり、パブリックのデフォルト コンストラクターがあります。(テストでそれらをインスタンス化しようとさえしました。
- セクションを削除すると
implements
、すべてが正しく機能します。
インターフェイスの実装で何が問題になる可能性がありますか? とは$ProxyXX
?