其实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。