2011-03-31 75 views
2

我在applicationContext.xml文件中定義了幾個bean,並發現如果我用bean的名稱犯了錯誤(說錯字),spring將不會抱怨任何內容,並繼續加載invalidate組態。不自動進行檢查?以及如何在applicationContext.xml文件上實現模式驗證?謝謝。如何驗證spring applicationContext.xml文件

+0

如果該文件無效,Spring將不會加載它。如果它加載它,它是有效的。它做了自己的模式級和邏輯級驗證。你需要給我們一個你認爲它做錯了什麼的具體例子。 – skaffman 2011-03-31 16:29:21

+0

在下面的代碼中,我實際上錯誤輸入了類名,應該是'com.xyz.services.serviceAttributesConfigInitializer',但是Spring不會'抱怨什麼異常不會啓動服務。 <構造精氨酸值= 「$ {attributes_sources}」/> <構造精氨酸REF = 「operationalConfig」/> – ohana 2011-03-31 17:18:48

+0

這是不正確。它會*抱怨,而且會抱怨很多。你一定不要看正確的日誌文件。 – skaffman 2011-03-31 17:32:01

回答

6

的IntelliJ IDEA有一個美好的support春季,包括:

  • 檢測斷開的引用(Bean不存在,有一個錯誤類型等)
  • 完成bean的名字時按Ctrl +按下空格鍵(同時將列表縮小到只有按類型匹配的豆)
  • 當使用@Resource/@Autowired時發現丟失/重複的豆,它將失敗在運行時自動裝配Java和應用程序上下文XML
  • 之間很多
  • 快速導航...更多

此外,我強烈建議寫春煙integration test。它不需要測試任何東西,只需要上下文啓動(你會驚訝的發現它發現了多少錯誤)。

+0

我如何使用迭代測試測試上下文啓動?你有任何例子或鏈接?謝謝。 – ohana 2011-03-31 17:58:13

+1

請閱讀我提供的[鏈接](http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/testing.html)。一切都在那裏解釋。即使在沒有實施實際測試的情況下,進行一次測試來執行大部分應用程序上下文XML文件也將具有很大的價值。 – 2011-03-31 18:41:45

1

爲了避免在春天出現錯誤,我建議你使用一個插件來檢查它的內容,例如springIDESpringSource Tool Suite。通過這種方式,插件可以在開發過程中驗證您的spring上下文,並且可以在執行應用程序之前發現錯誤。

+0

我希望編寫代碼來手動檢查bean,而不是讓Spring自動執行它,這樣我就可以控制控件了......可能嗎? – ohana 2011-03-31 17:17:21

+0

我不知道,我從來沒有這樣做過。我喜歡在開發過程中進行驗證,所以在執行期間我沒有任何問題。重點在於Spring試圖解析上下文,如果有任何錯誤,它就無法做到這一點,所以它會拋出相關的異常......但是,我很好奇,你想要做什麼?你能舉個例子嗎? – javanna 2011-03-31 17:33:17

1

除了這個問題,我還遇到了檢測重複的bean id的問題,這些重複的bean會無意中被重寫,但最後我發現這個開源項目可以幫助你編寫JUnit單元測試來檢測這些問題。這是非常容易使用和解決我的問題,它叫Beanoh