2
Springによって作成されたゲームルームのリストがあります。各客室には(列挙型である)いくつかのルールが対応し、コードは次のとおりです。Spring java config - 実行時に作成されたbeanのリストを作成する
@Bean
List<Room> rooms() {
return Arrays.stream(Rules.values())
.map(rule -> new Room(rule))
.collect(Collectors.toList());
}
しかし、今、私はあまりにも@Beans
する部屋を必要とする:私は春が彼らに@EventListener
注釈を処理したいです。しかし、私は将来的にRules
列挙型を更新することができるので、手動で設定する必要はありません。どうすればこの問題を解決できますか?ありがとう。
'room()' Beanのスコープが指定されていない場合、listのすべての部屋は同じルールを持っています: 'Rules.values()[0]'。だから私は 'room()' beanを '@Scope(" prototype ")'とマークする必要があります。 しかし、イベントを送信した後、例外が発生します。「ApplicationConfigで定義された名前 'room'を持つBeanを作成中にエラーが発生しました。メソッド 'room'パラメータ0で表されている満足度の低い依存関係。ネストされた例外はNoSuchBeanDefinitionExceptionです:タイプ 'Rules'の適格なBeanはありません。また、私のIDEは、 'room()' beanの場合、パラメータとして候補がないと主張しています。 – awfun
はい、beanスコープは 'prototype'でなければなりません。また、エラーには 'public'メソッドがありますか? (*これについては確かではありません*) –
メソッドはパッケージプライベートですが、それは問題ではありません - もしそうなら、私は起動時に例外を受け取ります – awfun