2011-12-10 62 views
0

是否可以僅使用dispatcher-servlet.xml來運行spring-orm程序。沒有使用ContextLoaderListenerapplicationcontext.xml?如果是,那麼如何?我的spring程序能否使用dispatcher-servlet.xml運行而不使用ContextLoaderListener和applicationcontext.xml?

其次爲什麼有必要註冊dispatcher-servlet.xmlapplicationcontext.xmlweb.xml?因爲當這些文件未在web.xml中註冊時,所有設置程序注入(在dispatcher-servlet.xmlapplicationcontext.xml中指定)都會在服務器啓動時發生,這意味着這些xml文件正在加載而不在web.xml中進行註冊。

+0

dispatcher-servlet.xml爲您的調度程序servlet配置上下文。我認爲你需要閱讀更多關於Spring的知識 - xml文件不是在web.xml中「註冊」的,它們是Spring的上下文加載器的參數。如果不想創建上下文,你想如何使用dispatcher-servlet.xml? – Paul

回答

1

是否可以僅使用dispatcher-servlet.xml運行spring-orm程序。沒有使用ContextLoaderListener和applicationcontext.xml?

是的,沒關係。

如果是的話那怎麼樣?

你只是這樣做。把你需要的所有東西放進dispatcher-servlet.xml,它將自行運作。雖然通常的做法是在applicationContext.xml中放入DAO相關的東西,而在dispatcher-servlet.xml中放入MVC的東西,但這絕不是必需的。如果你願意,它可以放在一個文件中。

其次爲什麼需要在web.xml中註冊dispatcher-servlet.xml或applicationcontext.xml?因爲當這些文件未在web.xml中註冊時,所有setter注入(在dispatcher-servlet.xml或applicationcontext.xml中指定)都會在服務器啓動時發生,這意味着這些xml文件在web.xml中無需註冊即可加載。

因爲如果你沒有在web.xml中指定它們,Spring將使用它的默認值並且無論如何都要查找它們。 DispatcherServlet將查找<servlet-name>-servlet.xml,並且ContextLoaderListener默認情況下將查找/WEB-INF/applicationContext.xml。如果您選擇,您可以在web.xml中覆蓋此項。

相關問題