文章 2022-05-06 来自:开发者社区

【小家Spring】BeanFactory体系和ApplicationContext体系,两大体系各接口分析、区别和联系(下)

一级接口:ApplicationContextEnvironmentCapable:可配置EnvironmentListableBeanFactory:前面有介绍:可将Bean逐一列出的工厂HierarchicalBeanFactory:前面有介绍:分层的工厂MessageSource:可管理message实现国际化等功能ApplicationEventPublisher:可publish事件,....

文章 2022-05-06 来自:开发者社区

【小家Spring】BeanFactory体系和ApplicationContext体系,两大体系各接口分析、区别和联系(中)

三级接口:ConfigurableBeanFactory 配置Bean工厂【巨大的工厂接口】对二级接口HierarchicalBeanFactory进行了再次增强,它还继承了另一个外来的接口SingletonBeanRegistry(因此它也具有分层、注册单例Bean的能力了)。SingletonBeanRegistry:Spring容器对单例bean实例的登记管理主要通过接口Singleton....

【小家Spring】BeanFactory体系和ApplicationContext体系,两大体系各接口分析、区别和联系(中)
文章 2022-05-06 来自:开发者社区

【小家Spring】BeanFactory体系和ApplicationContext体系,两大体系各接口分析、区别和联系(上)

前言前面已经讲述了很多Spring容器启动、解析、依赖注入等等源码层面的东西了,但是小伙伴有没有一种感觉就是:Spring的设计者把面向对象使用到了极致(使用得非常的好),并且它吧职责单一原则也是使用到了极致。它各个功能区块,通过接口都进行隔离得很开,这是让Spring能组件化开发,可插拔,变得如此优秀、普适的重要原因。它的IOC和AOP主要围绕两大阵营展开的,也就是咱们今天的主题:BeanFa....

【小家Spring】BeanFactory体系和ApplicationContext体系,两大体系各接口分析、区别和联系(上)
文章 2022-05-06 来自:开发者社区

【小家Spring】AbstractBeanFactory#getBean()、doGetBean完成Bean的初始化、实例化,以及BeanPostProcessor后置处理器源码级详细分析(下)

ConstructorResolver#autowireConstructor:这个方法作用是获取被包装后的bean,包装后的对象是BeanWrapper对象,这个对象的实现类是BeanWrapperImpl。其中包含被封装后待处理的bean,和设置bean属性的属性编辑器。 protected BeanWrapper autowireConstructor( String bea...

文章 2022-05-06 来自:开发者社区

【小家Spring】AbstractBeanFactory#getBean()、doGetBean完成Bean的初始化、实例化,以及BeanPostProcessor后置处理器源码级详细分析(中)

resolveBeforeInstantiation详解: @Nullable protected Object resolveBeforeInstantiation(String beanName, RootBeanDefinition mbd) { Object bean = null; // beforeInstantiationResolved 这个属性如果是fal...

文章 2022-05-06 来自:开发者社区

【小家Spring】AbstractBeanFactory#getBean()、doGetBean完成Bean的初始化、实例化,以及BeanPostProcessor后置处理器源码级详细分析(上)

前言这边博文,主要讲解我们Spring IOC容器的主菜:Bean的实例化、初始化。通过之前跟踪Spring IOC刷新的源码,我们所有的剩余的单例Bean都是通过这一步:finishBeanFactoryInitialization(beanFactory);来进行初始化的。最重要的一个方法就为:DefaultListableBeanFactory#preInstantiateSingleto....

【小家Spring】AbstractBeanFactory#getBean()、doGetBean完成Bean的初始化、实例化,以及BeanPostProcessor后置处理器源码级详细分析(上)
文章 2022-05-06 来自:开发者社区

【小家Spring】Spring容器(含父子容器)的启动过程源码级别分析(含web.xml启动以及全注解驱动,和ContextLoader源码分析)(下)

基于web.xml方式最常用配置如下:<listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <context-param> <param-...

【小家Spring】Spring容器(含父子容器)的启动过程源码级别分析(含web.xml启动以及全注解驱动,和ContextLoader源码分析)(下)
文章 2022-05-06 来自:开发者社区

【小家Spring】Spring容器(含父子容器)的启动过程源码级别分析(含web.xml启动以及全注解驱动,和ContextLoader源码分析)(中)

initWebApplicationContext方法如下:创建一个web子容器,并且和上面Spring已经创建好了的父容器关联上 protected WebApplicationContext initWebApplicationContext() { // 从ServletContext中把上面已经创建好的根容器拿到手 WebApplicationContext rootC...

【小家Spring】Spring容器(含父子容器)的启动过程源码级别分析(含web.xml启动以及全注解驱动,和ContextLoader源码分析)(中)
文章 2022-05-06 来自:开发者社区

【小家Spring】Spring容器(含父子容器)的启动过程源码级别分析(含web.xml启动以及全注解驱动,和ContextLoader源码分析)(上)

前言最近在编写Spring相关博文的时候,发现有不少小伙伴对口头上经常说到的Spring容器、父子容器等等概念,既熟悉,又默认。大体知道它是干啥的,但是却有不太能知道所以然因此本文自己也本着一个学习的态度,主要介绍Spring容器(父子容器)的启动过程。由于我们有web.xml配置文件的方式以及这里讲到过的全注解驱动的方式,因此本文都分开来讲述。备注:本文讲述不包括Spring Boot中容器初....

【小家Spring】Spring容器(含父子容器)的启动过程源码级别分析(含web.xml启动以及全注解驱动,和ContextLoader源码分析)(上)
文章 2022-05-03 来自:开发者社区

【小家java】Apache Commons-lang3提供的StopWatch执行时间监视器,以及Spring提供的StopWatch分析(下)

使用细节getTime和getSplitTime有啥区别呢?为了说明问题,此处我们看看getNanoTime()和getSplitNanoTime()亦可: public long getNanoTime() { if (this.runningState == State.STOPPED || this.runningState == State.SUSPENDED) { ...

本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。

微服务

构建可靠、高效、易扩展的技术基石

+关注