架构如下:

架构版本

架构图

Spring3结构图

 

spring项目标准结构_spring项目标准结构

 

 

 

 

Spring4结构图

spring项目标准结构_mvc_02

Spring5结构图

spring项目标准结构_mvc_03

 

 

上面的ORM包含了hibernate和mybatis

也就是ssh组合和ssm组合中的h与m。

图中将spring分为5个部分:core、aop、data access、web、test,

图中每个圆角矩形都对应一个jar,如果在maven中配置,

所有这些jar的“groupId”都是“org.springframework”,每个jar有一个不同的“artifactId”,

另外,“instrumentation”有两个jar,还有一个“spring-context-support”图中没有列出,所以spring3的jar包一共是19个

-----------------------------------------------------------------------下面是spring3的大致整理-----------------------------------------------------------------------------------------------------------------------------------------

Core

Container

spring-beans

Bean工厂与bean的装配

spring-core

依赖注入IoC与DI的最基本实现

spring-context

spring的context上下文即IoC容器

spring-expression

spring表达式语言

AOP

spring-aop

面向切面编程

spring-aspects

集成AspectJ

spring-instrument

提供一些类级的工具支持和ClassLoader级的实现,用于服务器

spring-instrument-tomcat

针对tomcat的instrument实现

Data Access

spring-jdbc

jdbc的支持

spring-tx

事务控制

spring-orm

对象关系映射,集成orm框架

spring-oxm

对象xml映射

spring-jms

java消息服务

Web

spring-web

基础web功能,如文件上传

spring-webmvc

mvc实现

spring-webmvc-portlet

基于portlet的mvc实现

spring-struts

与struts的集成,不推荐,spring4不再提供

Test

spring-test

spring测试,提供junit与mock测试功能

spring-context-support

spring额外支持包,比如邮件服务、视图解析等

 

注意:

各大文章中,spring框架的

AOP、Aspects、Instrumentation常常被归为一类

 

关于servlet,摘录来自[9]的一段话:

Web MVC 框架基于 Servlet API,就会是一项优点。因为,虽然运用 Web MVC 编写程序时,可做到不直接面对 Servlet API,然而,也意味着更强烈地受到 Spring 的约束,有时则是无法在设定或 API 中找到对应方案,有时也因为心智模型还是挂在 Servlet 容器,经验上难以脱离,在搞不出 HttpSession、ServletContext 对应功能时,直接从 HttpSession、ServletContext 下手,毕竟也是个方法。

 

至于Spring web和web mvc的区别[10]:

web mvc主要是对mvc的支持,包括restful协议

Spring web则对远程调用和远程服务的支持。