2017-03-07 90 views
1

我開始學習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配置將是一場噩夢。 (當然,我所有的意見) –

回答

0

Java Config的優點是類型安全。編譯器可以檢查是否正確連接應用程序(基於類型)。重構更容易一點。

使用XML配置,只能在運行時檢查。

我自己的看法是,這兩個方案之間沒有太大的區別。你只能「區別地告訴Spring」如何連接應用程序。 Java Config引入了一些很好的功能(例如Spring Security Config),但也隱藏了一些有時難以理解的「魔術」。

您也可以查看關於此topic的早期問題。

在項目中,我們仍然在這裏做了很多XML配置,它工作得很好。新配置通常被編寫爲Java配置並集成到「滯後」配置中。

+0

有趣的是,知道Java配置類型安全,你有什麼建議,我可以看看找到java配置的實現嗎?例如,OpenEntityManagerInViewFilter避免LazyInitializationException使用''標籤。我找不到使用註釋的Java的等效實現。 – Chris