ここにあるサンプルアプリ: https://github.com/rushidesai1/Grails2_4_2_BeanIssue
質問:
次のように Bean を宣言すると、resources.groovy で
beans = {
testObject(TestObject){bean ->
bean.scope = "prototype"
map = new HashMap() // or [:]
//And also if we declare any object like this
testA = new TestA()
}
}
ここで、testObject Bean を DI するか、'Holders.grailsApplication.mainContext.getBean("testObject")' を実行すると、取得する Bean にはシングルトン 'map' とシングルトン 'testA' オブジェクトが含まれます。
ここで testObject は 'prototype' として宣言されていますが、それでも 'map' と 'testA' の両方がシングルトンです。
これがバグなのか、それとも設計どおりに機能するのかを知りたいです。私たちは特に新しいことをしているので、毎回新しい Bean が注入されることを期待しているので、このように機能することは完全に直観に反しています。
ユニット テスト ケースを使用して、私の質問のより詳細なバージョンを確認してください。
明確にしていただきありがとうございます!!!