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