XML与Java配置。 SpringMVC网络应用程序配置

问题描述:

我开始学习Spring框架。我看到了两种配置Web应用程序的方式,一种使用web.xml来配置servlet等。另一个使用实现了WebApplicationInitializer的Java类,并且是注释驱动的。XML与Java配置。 SpringMVC网络应用程序配置

有人告诉我,"XML is the old way, no new project should use XML anymore"。谁能告诉我为什么这是?很多在线资源引用"Convention over Configuration",但是,使用我可以访问的在线学习工具,绝大多数示例都使用xml配置。我发现很难找到有关Java配置的相关示例。

我也想知道pro和con的使用一个在另一个是什么?如果它更容易找到基于xml配置的资源,那么对未来的工作前景来说,是否会破坏Java的配置并专注于xml?

+2

'XML是旧的方式,没有新的项目应该再使用XML'不同意100%。这取决于项目。使用Java配置,Spring beans更容易注入和创建。大型项目的配置在XML中更容易管理。一个小的webapp或服务可以使用纯Java配置,这可能没有问题。在大型Web应用程序上管理纯Java配置将是一场噩梦。 (当然,我所有的意见) –

Java Config的优点是类型安全。编译器可以检查是否正确连接应用程序(基于类型)。重构更容易一点。

使用XML配置,只能在运行时检查。

我自己的看法是,这两个方案之间没有太大的区别。你只能“区别地告诉Spring”如何连接应用程序。 Java Config引入了一些很好的功能(例如Spring Security Config),但也隐藏了一些有时难以理解的“魔术”。

您也可以查看关于此topic的早期问题。

在项目中,我们仍然在这里做了很多XML配置,它工作得很好。新配置通常被编写为Java配置并集成到“滞后”配置中。

+0

有趣的是,知道Java配置类型安全,你有什么建议,我可以看看找到java配置的实现吗?例如,OpenEntityManagerInViewFilter避免LazyInitializationException使用''标签。我找不到使用注释的Java的等效实现。 – Chris