Springを使用して作業中のプロジェクトの1つに循環参照がありますが、これを修正できず、起動時に次のエラーで失敗します。
'org.springframework.security.authenticationManager': Requested bean is currently in creation: Is there an unresolvable circular reference?
サンプルプロジェクトで同じ問題をより小さなレベルで再現しようとしました(作業プロジェクトの詳細はすべて含まれていません)。しかし、私は春がエラーで失敗するというもっともらしいシナリオを思い付くことができませんでした。これが私が持っているものです:
public class ClassA {
@Autowired
ClassB classB;
}
public class ClassB {
@Autowired
ClassC classC;
}
@Component
public class ClassC {
@Autowired
ClassA classA;
}
@Configuration
public class Config {
@Bean
public ClassA classA() {
return new ClassA();
}
@Bean
public ClassB classB() {
return new ClassB();
}
}
私のプロジェクトにも同様のシナリオがありますが、失敗します。サンプルプロジェクトでも春に文句を言うことを期待していました。しかし、それはうまくいきます!誰かが循環参照エラーでばねを壊す方法の簡単な例を教えてもらえますか?
編集: javax.inject.Providerを使用して問題を修正しました。2つのプロジェクトのその他の唯一の違いは、使用されたアノテーションが@Autowiredと@Componentの代わりにjavax.inject.Injectとjavax.annotation.ManagedBeanであったことです。