spring简化开发四个基本策略
1.基于POJO的轻量级和最小侵入性编程
2.通过依赖注入和面向接口松耦合
3.基于切面和惯性进行声明式编程
4.通过切面和模板减少样板式代码
AOP,IOC,DI之间的关系
DI ->(依赖) -> IOC <-(依赖) <- AOP
模块结构图
模块与主要功能
Spring之核心模块
-
core:依赖注入IOC与DI的最基本实现
-
beans:Bean工厂与Bean的装配
-
context:定义基础的Spring的Context上下文即IOC容器
-
context-support:对Spring IOC容器的扩展支持,以及IOC子容器
-
context-indexer:Spring的类管理组件和Classpath扫描
-
expression:Spring表达式语言
Spring之切面编程
-
aop:面向切面编程的应用模块,整合Asm,CGLIb,JDKProxy
-
aspects:继承AspectJ AOP应用框架
-
instrument:动态Class Loading模块
Spring之数据访问与集成
-
jdbc:Spring提供的JDBC抽象框架的主要实现模块,用于简化Spring JDBC操作
-
tx:Spring JDBC事务控制实现模块
-
orm:主要集成Hibernate,Java Persistence API(JPA) 和Java Data Objects(JDO)
-
oxm:将java对象映射成XML数据,或者将XML数据映射成java对象
-
jms:Java Messaging Service 能够发送和接收信息
Spring之Web组件
-
web:提供了最基础Web支持,主要建立于核心容器之上,通过Servlet或者Listeners来初始化IOC容器
-
webmvc:实现了Spring MVC(model-view-Controller)的Web应用
-
websocket:主要是与Web前端的全双工通讯的协议
-
webflux:一个新的非堵塞函数式Reactive Web框架,可以用来简历异步的,非阻塞,事件驱动的服务
Spring之通信报文
-
messaging:从Spring4开始新加入的一个模块,主要职责是为Spring框架继承一些基础的报文传送应用
Spring 之集成测试
-
test:主要为测试提供支持
Spring之集成兼容
-
framework-bom:Bill of Materials。解决Spring的不同模块依赖版本不同问题
各模块之间的依赖关系