1 Spring家族
第一阶段:Spring Core--包含AOC IOP等核心模块 Spring Data----连接数据 Spring Security---负责数据安全
第二阶段:Spring Boot----使得开发更加便捷
第三阶段:Spring cloud---微服务
第四阶段:Spring cloud dataflow--组合服务组件
2.Spring Core组成
1.Core模块
整个Spring框架构建在core核心模块中,它是整个框架的基础。在该模块中,Spring提供了一个IOC容器的实现,用于帮助我们通过依赖注入的方式管理对象之间的依赖关系;这个模块还包括框架中使用的各种工具类。
2.AOP模块
将面向对象和面向切面的方式进行结合,增强各POJO的能力
3.Spring JDBC和事务管理
还为业内主流的操作数据库框架提供了支持
4.JEE服务集成,以简化我们对这些服务的调用
5.Web模块:最被业界认可的就是Spring MVC框架
3.Spring源码架构
Spring的本质都是为了提供各种服务帮助我们简化基于简单java对象的应用程序的开发。
1.Test:单元测试,集成测试
2.Core Container:容器,Spring的核心部分,是Spring框架的基础
Beans是所有应用都要用到的,它包含访问配置文件,创建和管理Bean,以及进行IOC和DI相关操作的类。
Core包含了Spring框架的核心工具类,Spring其他部分都要使用到这个包里面的类。
Context:Spring的上下文,也称为IOC容器,通过上下文,我们可以获取容器中的Bean。
SpEL:提供了一个强大的表达式语言,用于在运行时查询和操作对象。可用于将Bean或者Bean属性注入到另外一个Bean,还支持Bean的方法调用。
3.Spring AOP主要由AOP、Aspects、Instrumentation三个模块组成。
AOP设计了一系列方法级别的AOP横切实现,比如前置通知,返回通知,异常通知等。
Aspects模块集成至AspectJ框架,与Instrumentation模块一样,是为了Spring AOP模块,提供多种实现方法。在提升AOP使用的便捷性的同时,进一步扩展AOP的功能。
Instrumentation模块是Spring AOP的资源模块,该模块主要支持对象级别的切面编程。作用是在JVM启动时生成一个代理类,通过代理类在运行时修改类的字节从而改变一个类的功能。多用于面向有状态的类的切面编程。
4.Spring Messaging模块
主要为继承Message API和消息协议提供支持,并解读为spring的报文,通过该模块,spring可以与市面主流的消息队列等进行消息生成与消费的集成。
5.Data Access/Integration数据访问和集成
JDBC:提供对JDBC的封装功能,该模块的主要意义在于简化JDBC的使用
Transactions: Spring JDBC事务控制实现的模块,对事务做了很好的封装,可以实现一个业务的完整流程。
ORM:集成市面主流的ORM框架,比如hibernate/mybatis等
JMS:提供消息队列的支持。
6.Web 模块:为web项目的开发提供支持
Web:为spring提供了最基础的web支持
WebMVC:主要实现了springMVC
WebSocket:主要是让spring能够支持WebScoket,依赖于Messaging模块。
WebFlux:基于响应式流,用来建立异步、非阻塞事件驱动的服务。
重点:Beans Core Context AOP
ApplicationContext是BeanFactory的超类,与BeanFactory的默认延迟加载策略不同,ApplicationContext容器实例化后会对所有的单实例Bean进行实例化,以及相关依赖关系的装配,使之处于待用状态。
4.Spring官方文档
spring.io 官网->Projects->Spring Framework->