Spring原码学习第一篇:Spring源码概述

这篇具有很好参考价值的文章主要介绍了Spring原码学习第一篇:Spring源码概述。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1、Spring获取对象的过程

Spring原码学习第一篇:Spring源码概述,Spring,spring

2、Spring源码概述图:

Spring原码学习第一篇:Spring源码概述,Spring,spring

2、一些重要的接口

Spring原码学习第一篇:Spring源码概述,Spring,spring文章来源地址https://www.toymoban.com/news/detail-544996.html

BeanDefinition中实现的方法,把xml中定义的对象封装为一个对象,方便后面处理
Spring原码学习第一篇:Spring源码概述,Spring,spring

4、BeandefinitionReader

BeandefinitionReader作为一个抽象层来处理配置文件,定义规范,方面扩展,如果再有其他格式的配置文件的话,直接实现该接口即可。

Spring原码学习第一篇:Spring源码概述,Spring,spring
Spring原码学习第一篇:Spring源码概述,Spring,spring

5、BeanFactory接口

BeanFactory是访问Spring Bean的根接口

BeanFactory
Bean工厂,整个容器的根接口,也是容器的入口
Construct ctor = clazz.getConstructor();
Object obj = ctor.newInstance()

Spring原码学习第一篇:Spring源码概述,Spring,spring
这几个接口要特别注意
Spring原码学习第一篇:Spring源码概述,Spring,spring

6、 BeanFactoryPostProcessor登场

在容器创建过程中需要动态的改变bean的信息怎么办?
例如:<property name = url value = ${jdbc.url}
如果想要随时修改beanDeifinition怎么办?
答案:用 BeanFactoryPostProcessor

例如PlaceholderConfigurerSupport类如下:
Spring原码学习第一篇:Spring源码概述,Spring,spring
自己实现BeanFactoryPostProcessor方法如下:
Spring原码学习第一篇:Spring源码概述,Spring,spring
Spring原码学习第一篇:Spring源码概述,Spring,spring
把beanDefinition信息修改完之后,就可以用反射进行实例化操作了。创建对象分为实例化和初始化。如下:
Spring原码学习第一篇:Spring源码概述,Spring,spring

7、 设置Aware接口属性

Aware接口是什么作用?
当Spring容器创建的bean对象在进行具体操作的时候,如果需要容器中的其他对象,此时可以将对象实现Aware接口,来满足需要
Spring原码学习第一篇:Spring源码概述,Spring,spring
Spring原码学习第一篇:Spring源码概述,Spring,spring

8、 BeanPostProcessor:before、BeanPostProcessor:after 后置增强处理器

Spring原码学习第一篇:Spring源码概述,Spring,spring

9、 对象的分类

对象分为两类:一类是普通对象,一类是容器对象
Spring原码学习第一篇:Spring源码概述,Spring,spring
Spring需要的对象举例:
Spring原码学习第一篇:Spring源码概述,Spring,spring
Bean 工厂实现应尽可能支持标准 Bean 生命周期接口。全套初始化方法及其标准顺序为:
Spring原码学习第一篇:Spring源码概述,Spring,spring
在不同的阶段要处理不同的工作,应该怎么办?
观察者模式:监听器,监听事件,多播器(广播器)

10、 BeanFactory 和FactoryBean的区别

都是用来创建对象的;
当使用BeanFactory的时候必须要遵循完整的创建过程,这个过程是由Spring来管理控制的;
而使用FactoryBean只需要调用getObject就可以返回具体的对象,整个对象的创建过程是由用户自己来控制的,更加灵活。

Spring原码学习第一篇:Spring源码概述,Spring,spring

到了这里,关于Spring原码学习第一篇:Spring源码概述的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Spring学习(五):一篇讲清楚动态代理(jdk和cglib)的使用、原理和源码

    目录 一、jdk动态代理的基本使用 二、cglib动态代理的基本使用 2.1 方法一:method.invoke() 方法反射调用 2.2 方法二(spring使用的这个方法): methodProxy.invoke() 2.3 方法三:methodProxy.invokeSuper() 三、jdk实现代理的原理  四、jdk实现代理的源码 五、jdk对代理的优化  六、cglib实现动

    2023年04月14日
    浏览(46)
  • 【Spring内容介绍 | 第一篇】什么是事务管理

            当今软件开发行业中,事务管理是一个不可或缺的重要组成部分。随着企业应用的复杂性和数据交互的增加,确保数据的一致性和完整性变得越来越关键。Spring框架作为一种全功能的应用程序开发框架,为我们提供了强大而灵活的事务管理功能。在这篇文章中,我

    2024年02月03日
    浏览(46)
  • 【Spring Security详解】第一章 | 概述

    从本系列开始,博主将带来大家深入学习Spring Security。博主对该框架的看法是不但要会使用,还有能够理解其源码,要知其然,还要知其所以然。 相信朋友们阅读完博主本系列全部文章之后,定会理解Spring Security,让我们从入门、到理解、最终吊打面试官! PS:博主早在8月中

    2023年04月08日
    浏览(39)
  • 【spring源码系列-01】spring底层源码整体概述

    Spring源码系列整体栏目 内容 链接地址 【一】spring源码整体概述 https://blog.csdn.net/zhenghuishengq/article/details/130940885 【二】通过refresh方法剖析IOC的整体流程 https://blog.csdn.net/zhenghuishengq/article/details/131003428 【三】xml配置文件启动spring时refresh的前置工作 https://blog.csdn.net/zhenghuishen

    2024年02月07日
    浏览(43)
  • Spring学习笔记之spring概述

    Spring是一个轻量级的控制反转和面向切面的容器框架 Spring最初的出现是为了解决EJB臃肿的设计,以及难以测试等问题。 Spring为了简化开发而生,让程序员只需关注核心业务的实现,尽可能的不再关注非业务逻辑代码(事务控制,安全日志等) 八大模块中有两大核心模块,

    2024年02月14日
    浏览(43)
  • Spring概述与核心概念学习 -- Spring入门(一)

    为了巩固所学的知识,作者尝试着开始发布一些学习笔记类的博客,方便日后回顾。当然,如果能帮到一些萌新进行新技术的学习那也是极好的。作者菜菜一枚,文章中如果有记录错误,欢迎读者朋友们批评指正。 (博客的参考源码以及可以在我主页的资源里找到,如果在学

    2024年02月16日
    浏览(47)
  • spring-transaction源码分析(1)概述和事务传播级别

    spring-tx包使用注解驱动和AOP通知将事务开启、提交/回滚、以及复杂的传播机制封装了起来,开发者不再需要编写事务管理的代码,而是可以只关注自己的业务逻辑。 本文将简单介绍spring-tx使用步骤以及七种事务传播级别。 后续文章会阅读源码,深入分析spring-tx aop通知、七种

    2024年02月03日
    浏览(42)
  • 【Cesium 编程第一篇】概述、环境搭建、界面介绍

    年前年后一直在面试,发现一个奇怪的现象:很多互联网公司经受住三年的疫情冲击,反而在疫情放开的那一刻撑不住了,很多大厂都在批量的裁员:美国硅谷、北京字节、迪士尼中国等等。在北京的朋友也是年后到现在一直没有找到合适的工作,当然不是他技术不行找不到

    2024年02月08日
    浏览(62)
  • C#从入门到精通之第一篇: C#概述与入门

    1.1 C#概述 C#语言及特点 C#是微软公司发布的一种面向对象的、运行于.NET Framework和 .Net Core(完全开源,跨平台能够在Windows/Linux上运行)之上的高级程序设计语言。 C#是一种安全的、稳定的、简单的、优雅的,由C和C++衍生出来的面向对象的编程语言。它在继承C和C++强大功能的

    2024年02月04日
    浏览(63)
  • 【Spring教程23】Spring框架实战:从零开始学习SpringMVC 之 SpringMVC简介与SpringMVC概述

    欢迎大家回到《Java教程之Spring30天快速入门》,本教程所有示例均基于Maven实现,如果您对Maven还很陌生,请移步本人的博文《如何在windows11下安装Maven并配置以及 IDEA配置Maven环境》,本文的上一篇为《Spring事务角色与 Spring事务属性、事务传播行为》 从这一节开始,我们开始

    2024年02月03日
    浏览(59)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包