【问题标题】:Any existing way to make sure beans defined in spring xml are stateless?任何现有的方法来确保在 spring xml 中定义的 bean 是无状态的?
【发布时间】:2010-12-25 15:47:25
【问题描述】:

在一个大型项目中,我们开始使用 spring 来管理我们的依赖注入。由于大多数开发人员都是从编码有状态类迁移而来,我们发现一些无状态 bean 实际上包含本身是有状态的实例变量。

如果我错了,请纠正我,编写一个单元测试来验证spring xml中定义的所有无状态bean实际上都是无状态的(即bean不应该有任何从未定义过的实例变量)弹簧xml)。在我尝试自己写之前,想知道是否有任何现有的工具可以检查?

谢谢

【问题讨论】:

  • 为什么说“无国籍”?一个没有字段的java类?那不就是一堆互不通信的Spring bean吗?
  • 您的意思是要确保您的实例变量永远不会改变?
  • bean 肯定可以有字段,但是,我的理解是 spring bean 将在容器中被重用,所以 bean 中的字段可能会携带状态,所以这些字段应该是最终的(常量)或定义的在 spring xml 中也是(它可以是无状态 bean 或原型..,至少它们的定义是经过深思熟虑的)
  • bing,如何使用构造函数注入并坚持每个成员都应该是最终的?

标签: spring testing javabeans stateless


【解决方案1】:

查看spring context analyzer。它检测到一些常见的弹簧作用域/接线错误,包括缺少作用域代理和 bean 中可疑的构造后字段状态。我知道很多项目都被它拯救了;)

【讨论】:

    猜你喜欢
    • 2015-05-09
    • 2011-08-28
    • 2014-11-23
    • 2011-05-29
    • 2011-12-17
    • 1970-01-01
    • 1970-01-01
    • 2016-03-03
    • 2012-01-27
    相关资源
    最近更新 更多