![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Spring
文章平均质量分 94
Carey丶zsh
不甘平凡的菜鸟
展开
-
Spring 基于注解设置 Bean 的作用域
Spring 中 Bean 的作用域前言 在默认情况下,Spring应用上下文中所有的 Bean 都是作为以单例的形式创建的。也就是说,不管给定的一个 Bean 被注入到其他 Bean 多少次,每次所注入的都是同一个实例。 在大多数情况下,单例的 Bean 是很理想的方案,初始化和垃圾回收对象实例所带来的成本只留给一些小规模任务。在这些任务中,对对象的保持无状态并且在应用中反复重...原创 2018-05-12 15:49:20 · 8717 阅读 · 0 评论 -
Spring IOC 源码解析(九) ApplicationContext refresh()
一. 前言在高级容器中.到头来,启动的入口都是一样的,不论是 Spring 还是 Spring Boot 都会调用 AbstractApplicationContext 的 refresh() 方法来启动容器 , 在该方法中包含了整个高级容器的主要过程.二.源码加注解@Override public void refresh() throws BeansException, Illegal...原创 2019-02-24 14:57:00 · 287 阅读 · 0 评论 -
Spring IOC 源码解析(八) Bean 的创建
文章目录一.前言二.源码流程2.1 doGetBean()2.1.1 重点一 (11~25 行):2.1.2 重点二 (37~49 行):2.1.3 重点三 (53行 和 58行):2.1.4 重点四 (64~83 行):2.1.5 重点五 (86~104 行):2.2 createBean();2.2.1 重点一 (12~16 行):2.2.2 重点二 (32~35 行):2.2.3 重点三 (...原创 2019-02-14 19:01:56 · 221 阅读 · 0 评论 -
Spring IOC 源码解析(七) BeanDefinition 的注册
一.项目准备1.1 创建项目首先创建一个简单的 maven 项目,并导入 spring 最基础的依赖包.这里用到的 spring 版本是 5.1.3.RELEASE因为我们只用到最简单 BeanFactory ,并没有用 ApplicationContext (高级封装的 BeanFactory),所以只要一个 spring-beans 的依赖即可 <dependencie...原创 2019-01-15 23:05:14 · 290 阅读 · 0 评论 -
Spring IOC 源码解析(六) XmlBeanFactory
一.前言现在我们把主要的类讲了一部分,下面我们来看看 Spring 是如何启动的.DefaultListableBeanFactory 作为一个默认的功能完整的 IOC 容器来使用.那我们就从它来入手.二. XmlBeanFactory2.1 描述XmlBeanFactory 是 DefaultListableBeanFactory 唯一的子类(已有 @Deprecated 注解), ...原创 2019-01-15 22:46:49 · 238 阅读 · 0 评论 -
Spring IOC 源码解析(五) ResourceLoader
一.前言用于加载资源的策略接口(例如,类路径或文件系统资源)。需要 ApplicationContext 来提供此功能,以及扩展的ResourcePatternResolver 支持。DefaultResourceLoader 是一个独立的实现,可以在 ApplicationContext 外部使用,也可以被 ResourceEditor 使用。使用特定上下文的资源加载策略,在Applic...原创 2019-01-15 22:45:00 · 389 阅读 · 0 评论 -
Spring IOC 源码解析(四) BeanDefinition
一.前言BeanDefinition是配置文件<bean>元素标签在容器中地内部表示。<bean>元素标签拥有class、scope、lazy-init等配置属性,BeanDefinition 则提供了相应地beanClass、scope、lazyInit类属性,BeanDefinition 就像<bean>中镜中人,二者是一一对应地来看一下整体的类结构...原创 2019-01-15 22:41:54 · 311 阅读 · 0 评论 -
Spring IOC 源码解析(三) DefaultListableBeanFactory
一.前言在第一篇的时候我们就讲过, spring ioc 的实现,主要的有两条实现分支,而 DefaultListableBeanFactory 的实现就是我们的第一个 BeanFactory 主要实现分支.来看一下 DefaultListableBeanFactory 的类结构:结合我第一篇做的流程图和 idea 生成的流程图,我们下面会重点讲一下左半部分的接口功能,右边类继承会做个简单...原创 2019-01-15 22:40:42 · 348 阅读 · 0 评论 -
Spring IOC 源码解析(二) BeanFactory
一.前言Spring IOC 容器顶级接口 BeanFactory 描述:定义了最基本的 ioc 容器规范,定义了 ioc 容器具有最基础的方法二.方法:BeanFactory 的所有方法:boolean containsBean(java.lang.String name) 此bean工厂是否包含具有给定名称的bean定义或外部注册的单例实例?java.lang.Stri...原创 2019-01-15 22:39:23 · 251 阅读 · 0 评论 -
Spring IOC 源码解析(一) 概述篇
一. IOC是什么:IOC —Inversion of Control,即“控制反转”,不是什么技术,而是一种设计思想。在 Java 开发中,Ioc 意味着将你设计好的对象交给容器控制,而不是传统的在你的对象内部直接控制。如何理解好 Ioc 呢?理解好Ioc的关键是要明确“谁控制谁,控制什么,为何是反转(有反转就应该有正转了),哪些方面反转了”●谁控制谁,控制什么:传统Java SE程序设...原创 2019-01-15 22:38:18 · 204 阅读 · 0 评论 -
SpringBoot 是如何通过 @SpringBootApplication 扫描项目中的 Bean
原因首先因为 XXXXXXXApplication 附带 @SpringBootApplication 注解,而 @SpringBootApplication 注解的层次如下:SpringBootApplication----@Inherited----@SpringBootConfiguration--------@Configuration----@EnableAutoConfig...原创 2019-06-22 16:56:16 · 2966 阅读 · 1 评论