Loading

摘要: 本系列前面讲解了Spring的bean定义、bean实例化、bean初始化等生命周期阶段。这些步骤使我们能够了解bean从创建到准备好使用所经历的过程。但是,除了这些步骤,bean的销毁也是非常重要的一步。在本系列的最后,我们将深入探讨bean的销毁过程,包括在什么情况下会发生销毁、销毁的顺序以及如何在bean销毁之前执行一些清理任务等。通过学习bean的销毁过程,我们将更全面地了解Spring的bean生命周期。在Spring中,有多种方式可以销毁bean。其中一种方式是在应用程序关闭时显式地调用`applicationContext.close()`方法来关闭容器。这个方法将会销毁所有还没有被销毁的bean。 阅读全文
posted @ 2023-05-23 17:44 努力的小雨 阅读(862) 评论(0) 推荐(2)
摘要: 在今天的文章中,我们将深入探讨 Bean 的属性注入和初始化流程,从而使其成为一个真正意义上的 Bean。这个过程包括属性注入、Aware 接口回调、BeanPostProcessor 的前置和后置处理等多个步骤,通过本文的学习,读者将能够更深入地了解 Spring 框架中 Bean 的属性注入和初始化过程,为后续的学习和实践打下坚实的基础。 阅读全文
posted @ 2023-05-16 16:06 努力的小雨 阅读(609) 评论(0) 推荐(5)
摘要: 在本文中,我们深入探讨了 Spring 框架中 Bean 的实例化过程,关于某些细节以后我会单独拿出一篇文章单独讲解,我们来总结下实例化都做了哪些事情:先从bean定义中加载当前类,因为最初Spring使用ASM技术解析元数据时只获取了当前类的名称寻找所有InstantiationAwareBeanPostProcessors实现类,并调用实例化前的方法postProcessBeforeInstantiation进行实例化,这里会使用构造方法进行实例化调用applyMergedBeanDefinitionPostProcessors找到所有MergedBeanDefinitionPostProcessors的实现类,比如我们的注入点(@Autowired等)寻找所有InstantiationAwareBeanPostProcessors实现类,并调用实例化后的方法postProcessAfterInstantiation通过本文的学习,读者将能够更深入地了解 Spring 框架中 Bean 的实例化过程,为后续的学习和实践打下坚实的基础。 阅读全文
posted @ 2023-05-15 18:37 努力的小雨 阅读(636) 评论(0) 推荐(2)
摘要: Docker 是一个开源的应用容器引擎,可以让开发者将应用程序打包成一个容器,并通过容器来部署、运行和管理应用程序。Docker 的核心概念包括容器和镜像。容器是镜像的可运行实例,可以通过 Docker API 或 CLI 来创建、启动、停止、移动或删除容器。镜像是一个只读模板,包含了创建 Docker 容器的说明。Docker 镜像可以通过 Dockerfile 文件来创建,也可以从公有仓库中下载使用。Docker Hub 是 Docker 官方提供的公有镜像仓库,包含大量的 Docker 镜像,供开发者使用。Docker Registry 是一个私有镜像仓库,可以用于存储和分享私有镜像。 阅读全文
posted @ 2023-05-11 17:15 努力的小雨 阅读(1016) 评论(0) 推荐(4)
摘要: 在之前的文章中,我们已经对 `bean` 的准备工作进行了讲解,包括 `bean` 定义和 `FactoryBean` 判断等。在这个基础上,我们可以更加深入地理解 `getBean` 方法的实现逻辑,并在后续的学习中更好地掌握`createBean` 方法的实现细节。 阅读全文
posted @ 2023-05-04 21:29 努力的小雨 阅读(695) 评论(0) 推荐(4)
摘要: FactoryBean 和 BeanFactory 是两个不同的概念。前者是一个接口,我们可以在实现该接口时通过调用 getObject 方法来返回实例,同时 FactoryBean 本身也是一个实例。后者是 Spring 容器的工厂,通过其中的 bean 定义 Map 一个一个地实例化我们通过注解等方式注入进去的 bean 工厂。在判断 FactoryBean 时,如果当前 BeanFactory 中没有对应的 bean 定义,那么就会去父容器中寻找相应的 bean 定义并进行判断。如果我们的类实现了 SmartFactoryBean 接口,那么它将会在 Spring 容器启动时就会调用 getObject 方法创建实例。接下来,我们将分几个小节来讲解 getBean 方法是如何实例化 bean 的,因为篇幅过长会影响读者的注意力和学习效果 阅读全文
posted @ 2023-05-01 21:21 努力的小雨 阅读(837) 评论(0) 推荐(3)
摘要: Spring的Bean定义环节是Spring IoC容器中的核心流程之一。在这个过程中,Spring会扫描指定的包路径,找到符合条件的Bean,并将其转换为Bean定义。在这个过程中,Spring使用了ASM技术来解析类的注解信息,判断当前类是否符合要求。然后,Spring将符合条件的Bean定义加入到候选集合中,并对其进行唯一标识命名、默认值赋值、常见定义注解的解析等操作。最后,Spring使用合并的Bean定义来包装原始的Bean定义,以便在Bean实例化的过程中进行更好的管理和控制。 阅读全文
posted @ 2023-05-01 09:28 努力的小雨 阅读(1196) 评论(0) 推荐(5)
摘要: 本文介绍了Spring框架中ApplicationContext的几个核心概念,包括MessageSource、ResourcePatternResolver、获取运行时环境、ApplicationEventPublisher和OrderComparator。对于每个概念,文章都提供了具体的用法示例和注意事项。如果您正在学习或使用Spring框架,本文将为您提供有价值的参考。 阅读全文
posted @ 2023-04-21 13:44 努力的小雨 阅读(974) 评论(0) 推荐(3)
摘要: Spring框架中有许多关键组件,理解这些组件的作用和关系可以帮助我们更好地阅读和理解Spring源码。BeanDefinition是Spring中重要的概念,定义了一个Bean的基本属性和行为,是Spring容器管理Bean的基础。我们可以通过注解或编程方式定义BeanDefinition,然后将其注册到Spring容器中。BeanDefinitionReader是读取和操作BeanDefinition的重要组件。其中XmlBeanDefinitionReader可以从XML文件中读取BeanDefinition,AnnotatedBeanDefinitionReader可以解析注解并注册BeanDefinition。BeanFactory是管理Bean创建和管理的基础接口。 阅读全文
posted @ 2023-04-20 17:40 努力的小雨 阅读(1056) 评论(1) 推荐(3)
摘要: Poe – Fast AI Chat是由知名问答社区 Quora 开发的 AI 产品,提供实时在线与多个 AI 机器人交流的功能。目前,ChatGPT、Sage、Dragonfly、Claude 机器人都可以免费、无限制、实时使用,只需要一个邮箱即可注册。用户可以随时切换 AI 机器人而对话不中断,对话记录在线保存并且同步到客户端。Poe为用户提供了简单易用、高效便捷的智能交流服务,是企业和组织提高客户服务水平、优化工作流程的好帮手。 阅读全文
posted @ 2023-04-14 14:19 努力的小雨 阅读(9790) 评论(0) 推荐(0)
摘要: xxl-job是一个轻量级、易扩展的分布式任务调度平台,能够快速开发和简单学习。开放源代码并被多家公司线上产品使用,开箱即用。尽管其确实非常好用,但我在工作中使用的是Oracle数据库,因为xxl-job是针对MySQL设计的,所以使用起来需要进行一些魔改。为了方便后人使用,我已经创建了许多SQL和自增序列,并将其整合到了xxl-job-2.3.0版本中,环境已经在线上正常使用了,所以可以放心使用。此外,我还将钉钉群报警机器人集成在了框架中,一旦有任何错误报警就会直接锁定日志URL,方便快速查看和处理响应! 阅读全文
posted @ 2023-04-13 09:44 努力的小雨 阅读(1253) 评论(0) 推荐(3)
摘要: 在学习 Spring 框架源码时,记住一句话:源码并不难,只需要给你各种业务场景或者项目经理,你也能实现自己的 Spring。虽然你的实现可能无法与开源团队相媲美,但是你肯定可以实现一个 0.0.1 版本。因此,初次阅读源码时,不要陷入太深的细节中,先了解大体逻辑,再仔细研读。 阅读全文
posted @ 2023-04-12 14:44 努力的小雨 阅读(1478) 评论(0) 推荐(6)
摘要: 4 月 6 日,根据 Meta AI 官方博客,Meta AI 宣布推出了一个 AI 模型 Segment Anything Model(SAM,分割一切模型)。据介绍,该模型能够根据文本指令等方式实现图像分割,而且万物皆可识别和一键抠图。 阅读全文
posted @ 2023-04-11 13:23 努力的小雨 阅读(3150) 评论(0) 推荐(1)
摘要: 本文介绍了学习Spring源码前需要掌握的核心知识点,包括IOC、AOP、Bean生命周期、初始化和Transaction事务。通过Hello World示例,讲解了如何使用Spring,并指出了深入了解Spring内部机制的方向。 阅读全文
posted @ 2023-04-10 11:15 努力的小雨 阅读(1935) 评论(0) 推荐(8)
摘要: 本文介绍了学习Spring源码前需要掌握的核心知识点,包括IOC、AOP、Bean生命周期、初始化和Transaction事务。通过Hello World示例,讲解了如何使用Spring,并指出了深入了解Spring内部机制的方向。 阅读全文
posted @ 2023-04-09 22:21 努力的小雨 阅读(190) 评论(0) 推荐(0)