![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Spring技术内幕
文章平均质量分 96
今天你学习了么
这个作者很懒,什么都没留下…
展开
-
Spring - 钩子方法
1. 概述Spring有很强的扩展性,主要体现在它为外界提供了许多钩子方法, 比如Aware、BeanPostProcessor、InitializingBean、init-method 等都是 Spring 提供的扩展点2. Aware 接口spring源码:Aware接口若 Spring 检测到 bean 实现了 Aware 接口,则会为其注入相应的依赖。所以通过让bean 实现 Aware 接口,则能在 bean 中获得相应的 Spring 容器资源。Spring 中提供的 Aware 接口原创 2020-05-21 17:01:51 · 551 阅读 · 0 评论 -
Spring AOP的实现
1. AOP,AspectJ,Spring AOPAOPAOP 要实现的是在我们原来写的代码的基础上,进行一定的包装,如在方法执行前、方法返回后、方法抛出异常后等地方进行一定的拦截处理或者叫增强处理AOP 的实现并不是因为 Java 提供了什么神奇的钩子,可以把方法的几个生命周期告诉我们,而是我们要实现一个代理,实际运行的实例其实是生成的代理类的实例Spring AOP它基于动态代理来实...原创 2020-05-08 11:54:48 · 214 阅读 · 0 评论 -
SpringFramework核心 - Bean的生命周期
面试官:请你描述下 Spring Bean 的生命周期?1. 概述Bean 的生命周期概括起来就是 4 个阶段实例化(Instantiation):第 1 步,实例化一个 bean 对象属性赋值(Populate):第 2 步,为 bean 设置相关属性和依赖;初始化(Initialization):第 3~7 步,步骤较多,其中第 5、6 步为初始化操作,第 3、4 步为在初始化前执...原创 2020-05-07 12:54:17 · 173 阅读 · 0 评论 -
SpringFramework核心 - IOC容器的实现 - 总结
1. 概述把Spring技术内幕第一章和第二章过了一遍,也做了一些笔记, 对IOC容器的实现有了一定皮毛理解,现在跟着源码再过一遍总结一下IOC容器的初始化,Bean的初始化的过程,做一下总结① IOC容器和简单工厂模式在开始之前,先想想我们平时是怎么使用IOC容器为我们管理Bean的,假设我们要把下面的User类交给IOC容器管理public class User { priva...原创 2020-05-06 10:00:32 · 315 阅读 · 0 评论 -
SpringFramework核心 - IOC容器的实现 - 循环依赖
spring依赖注入——循环依赖Spring 如何解决循环依赖?概述循环依赖其实就是循环引用,也就是两个或则两个以上的bean互相持有对方,最终形成闭环。比如A依赖于B,B依赖于C,C又依赖于A如果在日常开发中我们用new 对象的方式发生这种循环依赖的话程序会在运行时一直循环调用,直至内存溢出报错;Spring针对循环依赖问题提供了解决方案,但是对于循环依赖的解决不是无条件的,有些情况...原创 2020-05-04 13:13:13 · 167 阅读 · 0 评论 -
Spring Framework的核心 - IOC容器的实现 - BeanDefinition
1. 概述在之前的文章中有提到过,SpringIOC容器管理了我们定义的各种Bean对象及其相互的关系,Bean对象在Spring实现中是以BeanDefinition来描述的;BeanDefinition也叫spring bean的建模对象,也就是把可以表示bean的模型对象;在学习JVM虚拟机的时候,了解到普通类的实例化过程是先将java文件编译成class文件,继而java虚拟机启动会...原创 2020-05-04 09:46:23 · 143 阅读 · 0 评论 -
Spring Framework的核心 - IOC容器的实现 - bean的初始化和依赖注入
依赖注入的实现在之前的文章总结了IOC容器的初始化,初始化的过程就是在IOC容器中建立了BeanDefinition数据映射,但是没有对Bean的依赖关系进行注入依赖注入发生在以下两种情况:第一次向IOC容器索要Bean时触发当然也可能是发生在初始化的时候,取决于lazy-init属性是否懒加载索要Baan即调用容器的getBean方法,这就是依赖注入的入口;程序=数据+算法,在容器...原创 2020-05-03 10:51:49 · 304 阅读 · 0 评论 -
Spring Framework的核心 - 统一资源加载策略
转载自IOC之Spring统一加载策略1. 概述资源是一个抽象的概念,什么是资源?我们已知Spring中有很多xml配置文件,同时还可能自建各种properties资源文件,还有可能进行网络交互,收发各种文件、二进制流等。资源粗略的可以分为(这里以Spring的分类为例):URL资源File资源ClassPath相关资源服务器相关资源(JBoss AS 5.x上的VFS资源)通过...原创 2020-05-02 12:15:28 · 356 阅读 · 0 评论 -
Spring Framework的核心 - IOC容器的实现 - IOC容器的初始化
1. 概述IOC容器的初始化是通过refresh()方法来启动的,这个过程包括BeanDefination的Resource定位,载入和注册三个过程,Spring把这三个过程分来,分别使用不同的模块完成;① Resource定位对资源进行定位,也就是找到我们通常所说“applicationContetx.xml”等配置文件,他由ResourceLoader提供的统一的接口Resource完成...原创 2020-05-01 12:00:00 · 208 阅读 · 0 评论 -
Spring Framework的核心 - IOC容器的实现 -BeanFactoreny和ApplicationContext
1. 概述在Spring IOC容器设计中,有两个主要的容器系列,一个是实现BeanFactoreny接口的简单容器,他定义了IOC容器的基本功能规范;一个是ApplicationContext应用上下文,他作为容器的高级形态而存在,增加了许多面向框架的特性;除此之外还有其他许多IOC容器;既然有了容器,自然也要有容器中的核心数据,在Spring提供的基本IOC容器接口的定义和实现的基础上,S...原创 2020-04-30 20:03:21 · 185 阅读 · 0 评论 -
Spring Framework的核心 - IOC容器的实现 - 模式概述
1. 依赖倒置原则实现尽量依赖抽象,不依赖具体实现① 高层模块(使用者)不应该依赖低层模块(被使用者),二者都应该依赖其抽象如果上层依赖下层,下层变动了,自然就会影响到上层了,导致系统不稳定,甚至是牵一发而动全身,减少依赖的方法就是上层和下层都去依赖另一个稳定的抽象,因为相对于细节(实现类)的多变性,抽象的东西要更稳定② 抽象不应该依赖细节,细节应该依赖抽象依赖倒置的中心思想是面向接口编...原创 2020-04-30 12:07:40 · 160 阅读 · 0 评论 -
Spring - 设计理念和整体架构
1. 设计理念Spring为开发者提供一站式的轻量级应用开发框架在Java EE的应用开发中,支持POJO和使用JavaBean的开发方式,使应用面向接口开发,充分支持OO的设计方法从设计上,Spring分为核心,组件和应用三个基本的层次核心:Spring的核心即IOC容器和AOP模块,通过IOC来管理POJO对象,以及他们之间的松耦合关系;AOP以非侵入式的方法来增强服务(符合开闭原则...原创 2020-04-30 10:38:21 · 246 阅读 · 0 评论