一、简化开发的基本策略:
1.基于POJO的轻量级和最小侵入性编程
2.通过依赖注入和面向接口松耦合
3.基于切面和惯性进行声明式编程
4.通过切面和模板减少样板式代码
二、模块划分
1.核心模块
spring-core
依赖注入IOC与DI的最基本实现
spring-beans
Bean工厂与Bean的装配
spring-context
定义基础的Spring的Context上下文即IOC容器
spring-context-support
对Spring IOC容器的扩展支持,以及IOC子容器
spring-context-indexer
Spring的类管理组件和Classpath扫描
spring-expression
Spring表达式语言
2.切面模块
spring-ioc
面向切面编程的应用模块,整合Asm,CGLib,JDKProxy
spring-aspects
集成AspectJ,AOP应用框架
spring-instrument
动态Class Loading模块
3.数据访问与集成
spring-jdbc
Spring提供的JDBC抽象框架的主要实现模块,用于简化Spring JDBC操作
spring-tx
Spring JDBC事务控制实现模块
spring-orm
主要集成Hibernate,java Persistence API(JPA) 和Java Data Objects(JDO)等
spring-oxm
将java对象映射成XML数据,或者将XML数据映射成java对象
spring-jms
Java Messaging Service能够发送和接收信息
4.Web组件
spring-web
提供了最基础Web支持,主要建立于核心容器之上,通过Servlet或者Listeners来初始化IOC容器
spring-webmvc
实现了Spring MVC(model-view-Controller)的Web应用
spring-websocket
主要是与Web前端的全双工通讯的协议
spring-webflux
一个新的非阻塞函数式Reactive Web框架,可以用来建立异步的,非阻塞,事件驱动的服务
5.通信报文
spring-messaging
从Spring4开始新加入的一个模块,主要职责是为Spring框架集成一些基础的报文传送应用
6.测试
spring-test
主要是为测试提供支持的
7.兼容
spring-framework-bom
Bill of Materials. 解决Spring的不同模块依赖版本不同问题
三、版本命名规则(扩展)
1.一般软件版本
版本号一般表示:X.Y.Z
X
表示主版本号(Major),当API的兼容性发生变化时,X需递增
Y
表示次版本号(Minor),当增加功能时(不影响API的兼容性),Y需递增
Z
表示修订号(Patch),当做Bug修复时(不影响API兼容性),Z需递增
2.常见的修饰词
Snapshot
快照版
尚不稳定,尚处于开发中的版本
Alpha
内部版
严重缺陷基本完成修正并通过复测,但需要完整的功能测试
Beat
测试版
相对于alpha有很大的改进,消除了严重的错误,单还是存在一些缺陷
RC
终测版
Release Candidate(最终测试),即将作为正式版发布
Demo
演示版
只集成了正式版部分功能,无法升级
SP
SP1
升级包
Release
稳定版
功能相对稳定,可以对外发行,但有时间限制
Trial
试用版
试用版,仅对部分用户发行
Full Version
完整版
即正式版,已发布
Unregistered
未注册
有功能或时间限制的版本
Standard
标准版
能满足正常使用的功能的版本
Lite
精简版
只含有正式版的核心功能
Enhance
增强版
正式版,功能优化的版本
Ultimate
旗舰版
在标配版本升级体验感更好的版本
Professional
专业版
针对更高要求功能,专业性更强的使用群体发行的版本
Free
自由版
自由免费使用的版本
Upgrade
升级版
有功能增强或修复已知bug
Retail
零售版
单独发售
Cardware
共享版
公共许可证(IOS签证)
LTS
维护版
该版本需要长期维护
3.Spring版本命名规则
Snapshot
快照版
尚不稳定,尚处于开发中的版本
Release
稳定版
功能相对稳定,可以对外发行,但有时间限制
GA
正式版
代表广泛可用的稳定版
M
里程碑版
具有一些全新的功能或是具有里程碑意义的版本
RC
终测版
Release Candidate(最终测试),即将作为正式版发布