0

我必须在我的应用程序中使用 JavaBeans。

  • 该应用程序是一个配置驱动的应用程序。根据配置,将需要不同的 JavaBeans 类。
  • 一种选择是根据配置,我使用代码生成器来生成 JavaBean 类。
  • 另一个听起来很吸引人的选项是使用来自 Apache Beanutils的Dynamic Beans 。它使我免于代码生成的一个额外步骤。

您能否帮助我了解使用 Dynabeans 与 Generated JavaBeans 对性能和内存的影响。有没有比 DynaBeans 更好的替代品?

在这两种情况下,我稍后都会使用 Apache BeanUtils 来调用 getter/setter。

4

1 回答 1

2

关于与 Code Generated JavaBean 的比较,我一直在研究BeanUtils实现BasicDynaBean 并得出以下结论。

记忆

  • BasicDynaBean使用 a HashMap来存储键/值。如果有 1000 个 sme DynaBean 实例,那么就会浪费大量内存,因为每个实例中都会再次存储密钥。因此,代码生成 JavaBean 会消耗更多内存,如果您要在内存中存储大量 Dynabean 实例,则不建议这样做。

速度

  • 要访问不同的字段,它会get/put调用HashMap. 因此它比 Code Generated Java Beans 更快,因为我必须getter/setter使用reflection
于 2012-09-05T03:05:14.263 回答