1
クラスを@Configurationと定義されたメソッドinitでアノテーションし、注釈@Beanで定義しましたが、自動配線でそのBeanにアクセスしようとするとエラーが発生します 春の起動時にbeanを定義できません
┌─────┐
| Sum defined in class path resource [com/example/Application/Appconfig.class]
@Configuration
@EnableAutoConfiguration
public class Appconfig {
@Bean
public int Sum(int a,int b){
int c=a+b;
return c;
}
そして、私のコントローラクラス
@Autowired
Appconfig appconfig;
@PostMapping(value = "/api/{id1}/{id2}")
public void math(@PathVariable int id1,@PathVariable int id2){
appconfig.Sum(id1,id2);
System.out.println(id1);
System.out.println(id2);
System.out.println(appconfig.Sum(id1,id2));
}
エラー:アプリケーションコンテキスト内のBeanのいくつかの依存関係がサイクルを形成します
The dependencies of some of the beans in the application context form a cycle:
┌─────┐
| Sum defined in class path resource [com/example/Application/Appconfig.class]
└─────┘
'@ Configuration'と' @ Bean'の両方をクラスにドロップすることについて「適切な」ものは何もありません。そして、Springブートでは、アプリケーションのブートストラップクラスにBeanを定義するのは悪い方法です。 (非常にコンパクトな例では、入れ子クラスを追加してください。) – chrylis
@chrylis私は同意します。 – xenteros
'@ Configuration'は' @ Component'(メタ注釈)で注釈された特別なBeanです。 'AppConfig'はBeanです。 –