其實Spring全家桶中真正負責簡化web開發的是SpringMVC,而Spring其實與web開發並沒有必然的關係。
SpringMVC和Spring的整合
我覺得所謂的整合就是分別用一個XML文件來進行配置,並且在web.xml中分別配置SpringMVC和Spring(這是關鍵),這樣就會同時啓動SpringMVC和Spring了。
整合目的
- 其實,單純用SpringMVC的配置文件來配置所有的組件是完全可以的,只不過當組件變得很多之後,這個配置文件會變得非常龐雜,不便於維護。因此,整合的目的就是爲了分工明確。
- SpringMVC的配置文件用來配置和網站轉發邏輯以及網站功能有關的(視圖解析器、文件上傳解析器,支持ajax等等)。
- Spring的配置文件用來配置和業務有關的(事務控制,數據源等等)。
Bean 被創建兩次 ?
Spring 的 IOC 容器不應該掃描 SpringMVC 中的 bean, 對應的SpringMVC 的 IOC 容器不應該掃描 Spring 中的 bean。
在 Spring MVC 配置文件中引用業務層的 Bean
多個 Spring IOC 容器之間可以設置爲父子關係,以實現良好的解耦。
Spring MVC WEB 層容器可作爲 “業務層” Spring容器的子容器:即 WEB 層容器可以引用業務層容器的 Bean,而業務層容器卻訪問不到 WEB 層容器的 Bean。