参考书籍: Spring 源码深度解析 第二版
概述: Spring是为了解决企业应用开发的复杂性而创建的, 它使用基本的JavaBean来完成以前只可能由EJB完成的事情.
一.Spring整体架构
1.Core Container
包含四个模块: core, beans, context, expression language
Core 核心工具类, 是其他组件的核心.
Beans 访问配置文件,创建和管理bean以及进行Inversion of Control和Dependency Injection (IoC/DI)操作相关的类.
Context 构建于Core和Beans模块基础之上, 提供框架式的对象访问方法.
Expression Language 提供了强大的表达式语言, 用于在运行时查询和操纵对象.
2.Data Access/Integration
包含JDBC, ORM, OXM, JMS和Transaction模块
JDBC 包含了Spring对JDBC数据访问进行封装的所有类, 可以消除冗长的JDBC编码和解析数据库厂商特有的错误代码.
ORM 为流行的对象-关系映射API, 如JPA, JDO, Hibernate, iBatis等,提供了一个交互层.
OXM 提供了一个对Object/XML映射实现的抽象层.
JMS 主要包含了一些制造和消费消息的特性
Transaction 模块支持编程和声明性的事务管理, 这些事务类必须实现特定的接口, 并且对所有的POJO都适用.
3.Web
包含Web, Web-Servlet, Web-Structs和Web-Porlet模块
Web 提供了基础的面向Web的集成特性. 例如, 多文件上传, 使用servlet listeners初始化IoC容器以及一个面向Web的应用上下文.
Web-Servlet 包含Spring的model-view-controller(MVC)实现.
Web-Structs 提供对Structs的支持. 在Spring 3.0中被弃用.
Web-Porlet 提供了用于Portlet环境和Web-Servlet模块的MVC的实现.
4.AOP
AOP模块提供了一个符合AOP联盟标准的面向切面编程的实现,他可以让你定义例如方法拦截器和切点, 从而将逻辑代码分开, 降低他们之间的耦合性.
5.Test
Test 支持使用JUnit和TestNG对Spring组件进行测试.
二.Spring环境搭建
jdk版本:1.8
IntelliJ Idea版本:ULTIMATE 2018.3
部署容器: jetty
启动参数: jetty:run