阿里P8级别大牛精心整理SPRING核心文档知识点,PDF图文最全文档

Posted java码农之路1

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了阿里P8级别大牛精心整理SPRING核心文档知识点,PDF图文最全文档相关的知识,希望对你有一定的参考价值。

Spring 原理

它是一个全面的、企业应用开发一站式的解决方案,贯穿表现层、业务层、持久层。但是 Spring 仍然可以和其他的框架无缝整合。

Spring 特点

  1. 轻量级

  2. 控制反转

  3. 面向切面

  4. 容器

  5. 框架集合

image.png

Spring 核心组件

image.png

Spring 常用模块

image.png

Spring 主要包

image.png

Spring 常用注解

image.png
Spring IOC 原理

概念

Spring 通过一个配置文件描述 Bean 及 Bean 之间的依赖关系,利用 Java 语言的反射功能实例化 Bean 并建立 Bean 之间的依赖关系。 Spring 的 IoC 容器在完成这些底层工作的基础上,还提供 了 Bean 实例缓存、生命周期管理、 Bean 实例代理、事件发布、资源装载等高级服务。

Spring 容器高层视图

Spring 启动时读取应用程序提供的 Bean 配置信息,并在 Spring 容器中生成一份相应的 Bean 配 置注册表,然后根据这张注册表实例化 Bean,装配好 Bean 之间的依赖关系,为上层应用提供准 备就绪的运行环境。其中 Bean 缓存池为 HashMap 实现
image.png
IOC 容器实现

BeanFactory-框架基础设施

BeanFactory 是 Spring 框架的基础设施,面向 Spring 本身;ApplicationContext 面向使用 Spring 框架的开发者,几乎所有的应用场合我们都直接使用 ApplicationContext 而非底层 的 BeanFactory。
image.png

ApplicationContext 面向开发应用

ApplicationContext 由 BeanFactory 派 生 而 来 , 提 供 了 更 多 面 向 实 际 应 用 的 功 能 。 ApplicationContext 继承了 HierarchicalBeanFactory 和 ListableBeanFactory 接口,在此基础 上,还通过多个其他的接口扩展了 BeanFactory 的功能:
image.png
WebApplication 体系架构

WebApplicationContext 是专门为 Web 应用准备的,它允许从相对于 Web 根目录的 路径中装载配置文件完成初始化工作。从 WebApplicationContext 中可以获得 ServletContext 的引用,整个 Web 应用上下文对象将作为属性放置到 ServletContext 中,以便 Web 应用环境可以访问 Spring 应用上下文。
image.png
实例化

Spring Bean 生命周期

实例化一个 Bean,也就是我们常说的 new。

IOC 依赖注入

按照 Spring 上下文对实例化的 Bean 进行配置,也就是 IOC 注入。

setBeanName 实现

如果这个 Bean 已经实现了 BeanNameAware 接口,会调用它实现的 setBeanName(String) 方法,此处传递的就是 Spring 配置文件中 Bean 的 id 值

BeanFactoryAware 实现

如果这个 Bean 已经实现了 BeanFactoryAware 接口,会调用它实现的 setBeanFactory, setBeanFactory(BeanFactory)传递的是 Spring 工厂自身(可以用这个方式来获取其它 Bean, 只需在 Spring 配置文件中配置一个普通的 Bean 就可以)

ApplicationContextAware 实现

如果这个 Bean 已经实现了 ApplicationContextAware 接口,会调用 setApplicationContext(ApplicationContext)方法,传入 Spring 上下文(同样这个方式也 可以实现步骤 4 的内容,但比 4 更好,因为 ApplicationContext 是 BeanFactory 的子接 口,有更多的实现方法)

postProcessBeforeInitialization 接口实现-初始化预处理

. 如果这个 Bean 关联了 BeanPostProcessor 接口,将会调用 
postProcessBeforeInitialization(Object obj, String s)方法,BeanPostProcessor 经常被用 作是 Bean 内容的更改,并且由于这个是在 Bean 初始化结束时调用那个的方法,也可以被应 用于内存或缓存技术。

init-method

如果 Bean 在 Spring 配置文件中配置了 init-method 属性会自动调用其配置的初始化方法。

postProcessAfterInitialization

如果这个 Bean 关联了 BeanPostProcessor 接口,将会调用 
postProcessAfterInitialization(Object obj, String s)方法。 注:以上工作完成以后就可以应用这个 Bean 了,那这个 Bean 是一个 Singleton 的,所以一 般情况下我们调用同一个 id 的 Bean 会是在内容地址相同的实例,当然在 Spring 配置文件中 也可以配置非 Singleton。

Destroy 过期自动清理阶段

当 Bean 不再需要时,会经过清理阶段,如果 Bean 实现了 DisposableBean 这个接口,会调 用那个其实现的 destroy()方法;

destroy-method 自配置清理

最后,如果这个 Bean 的 Spring 配置中配置了 destroy-method 属性,会自动调用其配置的 销毁方法。

image.png
bean 标签有两个重要的属性(init-method 和 destroy-method)。用它们你可以自己定制 初始化和注销方法。它们也有相应的注解(@PostConstruct 和@PreDestroy)。

需要这份pdf文档的朋友们直接点这里直达即可获取!
image.png

以上是关于阿里P8级别大牛精心整理SPRING核心文档知识点,PDF图文最全文档的主要内容,如果未能解决你的问题,请参考以下文章

阿里P8大表哥送我350页Java 核心知识点+面试题整理,让我好好学争取进阿里和他一起996

阿里P8整理总结,备战金九银十入职大厂必备Android核心知识,附加面试题

阿里P8整理出Nginx笔记:Nginx应用与运维实战核心篇

程序员,阿里P8java大神讲的Spring大家族原理汇总,你确定不看?

阿里P8大牛耗费三年整理的:Java架构之完美设计实战PDF

阿里P8大牛整理的高并发高可用微服务架构Dubbo与RPC框架,纯干货