Spring基础知识点 - 核心模块
Spring 核心策略
- 基于Pojo的轻量级编程,实现最小侵入性
- 基于IOC,实现声明式编程
- 通过依赖注入完成依赖松耦合,通过面向接口编程实现代码灵活性
- 通过切面(AOP)和模板减少样板代码
- 约定优于配置
Spring 编程思想
面向对象编程 - OOP(Object Oriented Programming):抽象、封装、继承、多态
面向Bean编程 - BOP(Bean Oriented Programming):当对象被容器管理起来时,一切就变成了Bean
控制反转 - IOC(Inversion of Control):实现对Bean对象的管理(创建,销毁,依赖,代理等)
依赖注入 - DI(Dependency Injection):声明式依赖,由IOC容器实现真正的依赖关联
面向切面编程 - AOP(Aspect Oriented Programming):IOC机制下,动态代理的高级应用
Spring 模块结构
- 模块结构
Spring 5.0 新特性
- 响应式编程模型(webflux - 底层netty)
- 函数式编程(lambda,引入了kotlin)
- 测试改进,舍弃的库
- @nullable,logback
Spring 模块
Spring Core(核心容器)
spring core提供了IOC,DI,Bean配置装载创建的核心实现。核心概念: Beans、BeanFactory、BeanDefinitions、ApplicationContext
- spring-core :IOC和DI的基本实现
- spring-beans:BeanFactory和Bean的装配管理(BeanFactory)
- spring-context:Spring context上下文,即IOC容器(AppliactionContext)
- spring-expression:spring表达式语言
Spring AOP
spring-aop:面向切面编程的应用模块,整合ASM,CGLib,JDK Proxy
spring-aspects:集成AspectJ,AOP应用框架
spring-instrument:动态Class Loading模块
Spring Data Access
spring-jdbc:spring对JDBC的封装,用于简化jdbc操作
spring-tx:spring jdbc事务管理
spring-orm:java对象与数据库数据的映射框架
spring-oxm:对象与xml文件的映射框架
spring-jms: Spring对Java Message Service(java消息服务)的封装,用于服务之间相互通信
Spring Web
spring-web:最基础的web支持,建立于spring-context之上,通过servlet或listener来初始化IOC容器
spring-webmvc:实现web mvc
spring-websocket:与前端的全双工通信协议
spring-webflux:Spring 5.0提供的,用于取代传统java servlet,非阻塞式Reactive Web框架,异步,非阻塞,事件驱动的服务
Spring Message
Spring-messaging:spring 4.0提供的,为Spring集成一些基础的报文传送服务
Spring test
spring-test:集成测试支持,主要是对junit的封装
欢迎疑问、期待评论、感谢指点 -- kiqi,愿同您为友
-- 星河有灿灿,愿与之辉