spring javaconfig,xml config和annotations之间的性能差异

时间:2011-04-13 07:34:14

标签: java spring

我们的Spring配置包含大约1200个bean,我们使用component-scan / @ Autowired。如果我们将ApplicationContext导出为Xml(并且仍然使用@Autowired),我们在上下文启动时节省了大约10%。

如果我们尝试使用spring javaconfig,我们可以期待什么?

4 个答案:

答案 0 :(得分:4)

注释和XML之间可能没有区别,但是使用组件扫描会导致启动性能下降, 慢。如果您将组件扫描添加到XML版本,您会发现它的速度一样慢。

答案 1 :(得分:3)

我使用XML,注释和Java配置做了一个天真的基准测试。结果令人惊讶(Java配置较慢)。我不知道这是否与你的情况有关,基准是他们的......

http://www.jroller.com/kenwdelong/entry/is_spring_javaconfig_faster

答案 2 :(得分:2)

我猜的会少一些,因为没有解析会发生(注释是用反射'解析',xml - 用xml解析器)。

但是,这不应该是选择一个配置选项而不是另一个配置选项的原因。启动时间对性能不重要。

答案 3 :(得分:2)

我实际上曾经尝试了一段时间并且压抑它并不快......或者至少不能更快地感知到。在某些情况下,当我实际测量时,它的速度较慢(非常轻微)。我希望我有数字,但这是为了我自己的利益而进行的快速测试之一。我也没有1200豆,但大约有200个。

我还注意到混合XML和Java配置的性能最差(非常轻微)。

我发现我的Spring启动时间的瓶颈是Hibernate。我正在用Hibernate使用JDBC做大量相同配置的另一个项目,启动时间约为1/3。