![image-20220103101143966](https://i-blog.csdnimg.cn/blog_migrate/3f1dd720687400577dd9c85da28d4133.png)
Beans: 所有应用都要用到的,包含访问配置文件,创建和管理bean以及进行IoC操作的类。里面的BeanFactory接口是spring的核心框架接口。
Core: 包含spring的核心工具类,spring的其他组件都要使用这个包里的类。是其他组件的基本核心。
Context: spring的上下文,也称为spring的IoC容器,通过上下文,我们可以获得容器中的bean,里面的ApplicationContext接口是关键,作为Beans模块里面的BeanFactory里面的扩展,但与其不同,ApplicationContext初始化之后会自动对所有的单实例对象实例化和依赖关系的装配。Context构建在Beans和Core模块之上。
SpEL: 创建一个强大的语言,用于在运行时查询和操纵对象,可用于将bean或其属性注入到另外一个bean。
还支持bena方法的调用。
AOP: jdk的动态代理,设计方法级别的aop横切实现(前后置通知)
Aspects: 为springAOP提供多种实现方法
Instrumantation: AOP的支援模块,主要支持对象级别的切面编程。作用是在jvm启动时,生成代理类,通过代理类来改变类的字节,从而改变一个类的功能实现aop的功能。多用于有状态的切面编程。
message: 为消息协议提供支持,解读spring的报文,通过该模块spring可以与消息队列进行消息生成和消费。
数据访问和集成:提供了jdbc的完整封装,简化连接数据库的步骤。
ORM: 集成ORM的框架例如mybatis。 JMS:集成消息队列。
WebSocket: 支持websocket,全双工的通信协议,http无连接,不可靠,看作为支持http长连接打造的大补丁。
WebFlux: 支持异步,响应式文件流。
Spring基础核心模块预览
spring-core
◆包含框架基本的核心工具类,其它组件要都要使用到这个包里的类
◆定义并提供资源的访问方式
spring-beans :
Spring主要面向Bean编程( BOP ) .
将对象包装在bean中,从而达到对这些对象的管理,以及进行一系列额外操作的目的。同时将对象之间的依赖关系转为注解或者配置文件来管理。
- Bean的定义
- Bean的解析
- Bean的创建
spring-context
◆为Spring提供运行时环境,保存对象的状态
bean包装的是object,object有数据,提供数据生成的环境,对于context发现每个bean之间的关系并对关系进行维护,所以context是bean之间关系的集合。
◆扩展了BeanFactory
但与其不同,ApplicationContext初始化之后会自动对所有的单实例对象实例化和依赖关系的装配。
spring-aop
:最小化的动态代理实现
◆JDK动态代理
◆Cglib
◆只能使用运行时织入,仅支持方法级编织,仅支持方法
执行切入点
为了完整而讲的非核心模块
spring-aspectj + spring-instrument : Full AspectJ
springdemo:
1、写接口并写一个方法,实现类实现方法
2、将该接口通过xml文件配置到bean容器中
3、由于主方法需要使用spring-context的相关依赖,所以在build.gradle里面添加依赖
4、主方法里读取配置文件,获取bean对象,调用bean的方法。
将接口交给spring容器保管
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="welcomeService" class="com.imooc.service.impl.WelcomeServiceImpl"/>
</beans>
因为我们需要解析xml文件里面的内容,需要springContext,所以需要在build.granle里面定义所依赖的jar包
解析路径返回对应的spring容器,在获得bean实例,
学好Spring的建议
◆阅读Spring官方文档–Spring Framework Reference
◆多动手调试
◆掌握设计模式 ,熟悉Spring框架的标签和注解的作用
软件版本知识点补充
◆GA: General Availbility ,官方正式发布的稳定版本
◆同质的还有RELEASE , Stable , Final
◆RC : Release Candidate ,发行候选版本,基本不再加入新的功能
◆Alpha :内部测试版本, bug较多,功能不全
◆Beta :公开测试版,比Alpha版本晚些,还会加功能,修bug
◆M : Milestone ,开发期发行版本,边开发边发行