Spring基础知识点 - 核心模块

Spring 核心策略

  1. 基于Pojo的轻量级编程,实现最小侵入性
  2. 基于IOC,实现声明式编程
  3. 通过依赖注入完成依赖松耦合,通过面向接口编程实现代码灵活性
  4. 通过切面(AOP)和模板减少样板代码
  5. 约定优于配置

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 模块结构

  1. 模块结构
    Spring 5.0 模块结构

Spring 5.0 新特性

SpringBoot 2.0 Servlet容器

  1. 响应式编程模型(webflux - 底层netty)
  2. 函数式编程(lambda,引入了kotlin)
  3. 测试改进,舍弃的库
  4. @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的封装

依赖关系参考:凌承一 - spring framework体系结构及内部各模块jar之间的maven依赖关系

posted @ 2021-01-29 22:41  祁奇  阅读(116)  评论(0编辑  收藏  举报