示例应用程序位于此处:https ://github.com/rushidesai1/Grails2_4_2_BeanIssue
问题:
如果我们在 resources.groovy 中声明一个这样的 bean
beans = {
testObject(TestObject){bean ->
bean.scope = "prototype"
map = new HashMap() // or [:]
//And also if we declare any object like this
testA = new TestA()
}
}
现在,如果我们 DI testObject bean 或执行 'Holders.grailsApplication.mainContext.getBean("testObject")',那么我们得到的 bean 将具有单例 'map' 和单例 'testA' 对象。
这里 testObject 被声明为“原型”,即使这样,“地图”和“测试A”都是单例的
我想知道这是一个错误还是按设计工作。它会像这样工作是完全违反直觉的,因为我们专门做新的,所以我们希望每次都注入一个新的 bean。
使用单元测试用例查看我的问题的更详细版本。
提前感谢您的澄清!