我正在嘗試解決我的配置文件問題。使用maven時將彈性配置文件放在哪裏
我有這種結構的Spring MVC應用程序(我目前的結構)
src/main/java/ ....................... (java classes) src/main/resources/ .................. (some .properties files) src/main/webapp/ ..................... (web content, web.xml) src/main/webapp/spring/ .............. (other spring config files, app-confix.xml, etc.) src/main/webapp/myApp-servlet.xml .... (servlet config) src/test/java ........................ (java test classes) src/test/resources ................... (some test .properties files)
(這是非常標準的Maven項目目錄結構)
所以,我的問題是:我應該把春天配置文件資源目錄或不? 我不確定他們是否可以被視爲資源文件。大多數Spring項目都在WEB-INF /目錄中進行配置。但是單元測試有一個問題,因爲當我需要加載servlet配置時,maven希望配置文件位於/ test/resources目錄中。我知道,我可以將上下文xml文件複製到被測試的類,一切都會好的,但對我來說看起來並不好。
我在網上閱讀了很多文章,但我仍然不確定什麼是正確的方法。
所以我有樹選項:
1.住宿與當前的結構
2.移動所有Spring配置到/主/(Java |測試)/資源 在這裏我可以看到一件壞事。所有的配置文件都將在類目錄中,我不確定這是否正確。
3.僅將servlet配置移動到/ main /(java | test)/ resources,並將其他彈簧配置文件保存在/ WEB-INF /目錄中。
那麼,你有什麼建議? 在Maven和JUnit中使用Spring時配置文件放置的最佳實踐是什麼?
更新:在選項2固定目錄的命名和3
更新:我發現很有趣的閱讀[1]的最佳做法是在春天。它看起來非常有希望並證實了拉爾夫的解決方案。我對WEB-INF/classes
中的META-INF目錄仍然不滿意,但是,沒有什麼是完美的。
好的,這是合理的解決方案,我應該放置僅用於單元/集成測試的上下文文件?到'src \ test \ resources \ META-INF \'目錄下? – Peter
在一個測試資源文件夾中:'src \ test \ resources \ ...' – Ralph
我很抱歉,但我還有一個奇怪的問題。我遵循你的建議,但是我的META-INF目錄被複制到了「WEB-INF/classes'目錄中。所以,在我的情況下,我有'webApp/WEB-INF/classes/META-INF/spring ...'中的所有配置文件。我不確定這是否是正確的行爲,我認爲'java/main/resources/META-INF'中的所有文件都應該位於'webApp/META-INF'目錄中,而不是'webApp/WEB-INF/classes'目錄。 – Peter