弹簧原型范围 - 用例?
2022-09-01 01:39:42
我对春豆的各种范围有清晰的了解。但是我正在寻找企业级项目中Bean原型范围的一些用例。如果您可以分享一些原型范围(而不是请求范围)的真实用例,那就太好了。
我对春豆的各种范围有清晰的了解。但是我正在寻找企业级项目中Bean原型范围的一些用例。如果您可以分享一些原型范围(而不是请求范围)的真实用例,那就太好了。
作为以前在SpringSource工作过并与开发人员就此主题进行过交谈的人。这是我的看法。Prototype非常适合测试,因此名称为原型,而不是创建新的或每次从Spring容器请求Bean的新实例时都有更多的描述。
多年来,我还发现,在任何现实世界的生产应用中,原型在任何地方都毫无意义。如果你的对象保持状态,它通常不应该是一个Spring Bean。在我工作过的所有应用程序中,我发现所有bean都是服务,存储库和单例非状态保存对象,我需要添加诸如事务性,JPA,JMS之类的功能,这些功能为我们提供了POJO所没有的企业功能。
我的系统中保持状态的对象可能是我的实体和视图DTO,或者其他对成为Spring Bean没有意义的东西。因此,在我的生产应用程序中,没有一个“原型”豆。
我使用原型Bean来声明配置的表单元素(配置为验证名称,例如电子邮件地址的文本框),并为在我的Webapp中创建的每个表单获取它们的“活”实例。细节并不重要,重要的是原则,我会这样总结:
applicationContext.getBean("myBeanConfiguredFancy1")