Spring完整原理,每日一更 Spring IOC原理详细讲解

Spring IOC原理解读 面试必读 Spring IOC设计原理解析:本文乃学习整理参考而来 一、 什么是Ioc/DI? 二、 Spring IOC体系结构 (1) BeanFactory (2) BeanDefinition 三、 IoC容器的初始化 1、 XmlBeanFactory(屌丝IOC)的整个流程 2、 FileSystemXmlApplicationContext 的IO 阅读详情

接 Spring原理:https://blog.youkuaiyun.com/Java_Pluto/article/details/115539379?spm=1001.2014.3001.5501

Spring IOC原理

概念Spring

通过一个配置文件描述Bean 及Bean 之间的依赖关系,利用Java 语言的反射功能实例化Bean 并建立Bean 之间的依赖关系。Spring 的IoC 容器在完成这些底层工作的基础上,还提供了Bean 实例缓存、生命周期管理、Bean 实例代理、事件发布、资源装载等高级服务。

Spring容器高层视图

Spring 启动时读取应用程序提供的Bean配置信息,并在Spring容器中生成一份相应的Bean配置注册表,然后根据这张注册表实例化Bean,装配好Bean之间的依赖关系,为上层应用提供准备就绪的运行环境。其中Bean缓存池为HashMap实现
在这里插入图片描述

IOC容器实现

BeanFactory-框架基础设施*

BeanFactory 是Spring 框架的基础设施,面向Spring 本身;ApplicationContext 面向使用Spring 框架的开发者,几乎所有的应用场合我们都直接使用ApplicationContext 而非底层的BeanFactory。

在这里插入图片描述

  • BeanDefinitionRegistry注册表

1.Spring 配置文件中每一个节点元素在Spring 容器里都通过一个BeanDefinition 对象表示,它描述了Bean 的配置信息。而BeanDefinitionRegistry 接口提供了向容器手工注册BeanDefinition 对象的方法。

  • BeanFactory 顶层接口

2.位于类结构树的顶端,它最主要的方法就是getBean(String beanName),该方法从容器中返回特定名称的Bean,BeanFactory 的功能通过其他的接口得到不断扩展:

  • ListableBeanFactory

3.该接口定义了访问容器中Bean 基本信息的若干方法,如查看Bean 的个数、获取某一类型Bean 的配置名、查看容器中是否包括某一Bean 等方法;

  • HierarchicalBeanFactory父子级联

4.父子级联IOC 容器的接口,子容器可以通过接口方法访问父容器;通过HierarchicalBeanFactory 接口,Spring 的IOC 容器可以建立父子层级关联的容器体系,子容器可以访问父容器中的Bean,但父容器不能访问子容器的Bean。Spring 使用父子容器实现了很多功能,比如在Spring MVC 中,展现层Bean 位于一个子容器中,而业务层和持久层的Bean 位于父容器中。这样,展现层Bean 就可以引用业务层和持久层的Bean,而业务层和持久层的Bean 则看不到展现层的Bean。

  • ConfigurableBeanFactory

5.是一个重要的接口,增强了IoC 容器的可定制性,它定义了设置类装载器、属性编辑器、容器初始化后置处理器等方法;

  • AutowireCapableBeanFactory自动装配

6.定义了将容器中的Bean 按某种规则(如按名字匹配、按类型匹配等)进行自动装配的方法;

  • SingletonBeanRegistry运行期间注册单例Bean

7.定义了允许在运行期间向容器注册单实例Bean 的方法;对于单实例(singleton)的Bean 来说,BeanFactory会缓存Bean 实例,所以第二次使用getBean() 获取Bean 时将直接从IoC 容器的缓存中获取Bean 实例。Spring 在DefaultSingletonBeanRegistry 类中提供了一个用于缓存单实例Bean 的缓存器,它是一个用HashMap 实现的缓存器,单实例的Bean 以beanName 为键保存在这个HashMap 中。

  • 依赖日志框框

在初始化BeanFactory 时,必须为其提供一种日志框架,比如使用Log4J,即在类路径下提供Log4J 配置文件,这样启动Spring 容器才不会报错。

ApplicationContext面向开发应用

ApplicationContext 由BeanFactory 派生而来,提供了更多面向实际应用的功能。ApplicationContext 继承了HierarchicalBeanFactory 和ListableBeanFactory 接口,在此基础上,还通过多个其他的接口扩展了BeanFactory 的功能:
在这里插入图片描述
1.ClassPathXmlApplicationContext:默认从类路径加载配置文件

2.FileSystemXmlApplicationContext:默认从文件系统中装载配置文件

3.ApplicationEventPublisher:让容器拥有发布应用上下文事件的功能,包括容器启动事件、关闭事件等。

4.MessageSource:为应用提供i18n 国际化消息访问的功能;

5.ResourcePatternResolver :所有ApplicationContext 实现类都实现了类似于
PathMatchingResourcePatternResolver 的功能,可以通过带前缀的Ant 风格的资源文件路径装载Spring 的配置文件。

6.LifeCycle:该接口是Spring 2.0 加入的,该接口提供了start()和stop()两个方法,主要用于控制异步处理过程。在具体使用时,该接口同时被ApplicationContext 实现及具体Bean 实现,ApplicationContext 会将start/stop 的信息传递给容器中所有实现了该接口的Bean,以达到管理和控制JMX、任务调度等目的

7.ConfigurableApplicationContext 扩展于ApplicationContext,它新增加了两个主要的方法:refresh()和close(),让ApplicationContext 具有启动、刷新和关闭应用上下文的能力。在应用上下文关闭的情况下调用refresh()即可启动应用上下文,在已经启动的状态下,调用refresh()则清除缓存并重新装载配置信息,而调用close()则可关闭应用上下文。

WebApplication体系架构

WebApplicationContext 是专门为Web 应用准备的,它允许从相对于Web 根目录的路径中装载配置文件完成初始化工作。从WebApplicationContext 中可以获得ServletContext 的引用,整个Web 应用上下文对象将作为属性放置到ServletContext 中,以便Web 应用环境可以访问Spring 应用上下文。

在这里插入图片描述

SpringBean 作用域

Spring 3中为Bean定义了5中作用域,分别为singleton(单例)、prototype(原型)、request、session和global session,5种作用域说明如下:

singleton:单例模式(多线程下不安全)

1.singleton:单例模式,Spring IoC容器中只会存在一个共享的Bean实例,无论有多少个Bean引用它,始终指向同一对象。该模式在多线程下是不安全的。Singleton作用域是Spring中的缺省作用域,也可以显示的将Bean定义为singleton模式,配置为:

<bean id="userDao" class="com.ioc.UserDaoImpl" scope="singleton"/>

prototype:原型模式每次使用时创建

2.prototype:原型模式,每次通过Spring容器获取prototype定义的bean时,容器都将创建一个新的Bean实例,每个Bean实例都有自己的属性和状态,而singleton全局只有一个对象,根据经验,对有状态的bean使用prototype作用域,而对无状态的bean使用singleton作用域。

Request:一次request一个实例

Request:一次request一个实例

3.request:在一次Http请求中,容器会返回该Bean的同一实例。而对不同的Http请求则会产生新的Bean,而且该bean仅在当前Http Request内有效,当前Http请求结束,该bean实例也将会被销毁。

<bean id="loginAction" class="com.cnblogs.Login" scope="request"/>

session

4.session:在一次Http Session中,容器会返回该Bean的同一实例。而对不同的Session请求则会创建新的实例,该bean实例仅在当前Session内有效。同Http请求相同,每一次session请求创建新的实例,而不同的实例之间不共享属性,且实例仅在自己的session请求内有效,请求结束,则实例将被销毁。

<bean id="userPreference" class="com.ioc.UserPreference" scope="session"/>

global Session

5.global Session:在一个全局的Http Session中,容器会返回该Bean的同一个实例,仅在使用portlet context时有效。

SpringBean 生命周期

实例化

1.实例化一个Bean,也就是我们常说的new。

IOC依赖注入

2.按照Spring上下文对实例化的Bean进行配置,也就是IOC注入。

setBeanName实现

3.如果这个Bean已经实现了BeanNameAware接口,会调用它实现的setBeanName(String)方法,此处传递的就是Spring配置文件中Bean的id值

BeanFactoryAware实现

4.如果这个Bean已经实现了BeanFactoryAware接口,会调用它实现的setBeanFactory,setBeanFactory(BeanFactory)传递的是Spring工厂自身(可以用这个方式来获取其它Bean,只需在Spring配置文件中配置一个普通的Bean就可以)。

ApplicationContextAware实现

5.如果这个Bean已经实现了ApplicationContextAware接口,会调用setApplicationContext(ApplicationContext)方法,传入Spring上下文(同样这个方式也可以实现步骤4的内容,但比4更好,因为ApplicationContext是BeanFactory的子接口,有更多的实现方法)

postProcessBeforeInitialization接口实现-初始化预处理

6.如果这个Bean关联了BeanPostProcessor接口,将会调用postProcessBeforeInitialization(Object obj, String s)方法,BeanPostProcessor经常被用作是Bean内容的更改,并且由于这个是在Bean初始化结束时调用那个的方法,也可以被应用于内存或缓存技术。

init-method

7.如果Bean在Spring配置文件中配置了init-method属性会自动调用其配置的初始化方法。

postProcessAfterInitialization

8.如果这个Bean关联了BeanPostProcessor接口,将会调用postProcessAfterInitialization(Object obj, String s)方法。注:以上工作完成以后就可以应用这个Bean了,那这个Bean是一个Singleton的,所以一般情况下我们调用同一个id的Bean会是在内容地址相同的实例,当然在Spring配置文件中也可以配置非Singleton。

Destroy过期自动清理阶段

9.当Bean不再需要时,会经过清理阶段,如果Bean实现了DisposableBean这个接口,会调用那个其实现的destroy()方法;

destroy-method自配置清理

10.最后,如果这个Bean的Spring配置中配置了destroy-method属性,会自动调用其配置的销毁方法。

Spring 依赖注入四种方式

构造器注入

/*带参数,方便利用构造器进行注入*/ 
 public CatDaoImpl(String message){  
     this. message = message; 
  }
 <bean id="CatDaoImpl" class="com.CatDaoImpl">
      <constructor-arg value="message"></constructor-arg>
 </bean>

setter方法注入

public class Id { 
  private int id; 
  public int getId() { return id; }  
  public void setId(int id) { this.id =id; }
 }
  <bean id="id" class="com.id "> <property name="id" value="123"></property> </bean> 

静态工厂注入

静态工厂顾名思义,就是通过调用静态工厂的方法来获取自己需要的对象,为了让spring管理所有对象,我们不能直接通过"工程类.静态方法()"来获取对象,而是依然通过spring注入的形式获取:

public class DaoFactory { //静态工厂 
    publicstatic final FactoryDaogetStaticFactoryDaoImpl(){ 
        return new StaticFacotryDaoImpl(); 
    }
 }
  public class SpringAction { 
           private FactoryDao staticFactoryDao; //注入对象
             //注入对象的set方法 
     public void setStaticFactoryDao(FactoryDao staticFactoryDao) { 
         this.staticFactoryDao = staticFactoryDao; 
       }
 } 
 //factory-method="getStaticFactoryDaoImpl"指定调用哪个工厂方法
    <bean name="springAction" class="SpringAction" > 
       <!--使用静态工厂的方法注入对象,对应下面的配置文件--> 
        <property name="staticFactoryDao" ref="staticFactoryDao"></property> 
           </bean> 
     <!--此处获取对象的方式是从工厂类中获取静态方法--> 
     <bean name="staticFactoryDao" class="DaoFactory" 
      factory-method="getStaticFactoryDaoImpl"></bean>

实例工厂

实例工厂的意思是获取对象实例的方法不是静态的,所以你需要首先new工厂类,再调用普通的实例方法:

public class DaoFactory { //实例工厂 
 public FactoryDao getFactoryDaoImpl(){ 
     return new FactoryDaoImpl(); 
   }
 } 
 public class SpringAction {  
     private FactoryDao factoryDao; //注入对象 
      public void setFactoryDao(FactoryDao factoryDao) {  
        this.factoryDao = factoryDao; 
      }
 } 
      <bean name="springAction" class="SpringAction"> 
          <!--使用实例工厂的方法注入对象,对应下面的配置文件--> 
           <property name="factoryDao" ref="factoryDao"></property> 
       </bean> 
        <!--此处获取对象的方式是从工厂类中获取实例方法--> 
       <bean name="daoFactory" class="com.DaoFactory"></bean>
       <bean name="factoryDao" factory-bean="daoFactory"
        factory-method="getFactoryDaoImpl"></bean> 

5种不同方式的自动装配

Spring装配包括手动装配和自动装配,手动装配是有基于xml装配、构造方法、setter方法等自动装配有五种自动装配的方式,可以用来指导Spring容器用自动装配方式来进行依赖注入。

1.no:默认的方式是不进行自动装配,通过显式设置ref 属性来进行装配。

2.byName:通过参数名自动装配,Spring容器在配置文件中发现bean的autowire属性被设置成byname,之后容器试图匹配、装配和该bean的属性具有相同名字的bean。

3.byType:通过参数类型自动装配,Spring容器在配置文件中发现bean的autowire属性被设置成byType,之后容器试图匹配、装配和该bean的属性具有相同类型的bean。如果有多个bean符合条件,则抛出错误。

4.constructor:这个方式类似于byType,但是要提供给构造器参数,如果没有确定的带参数的构造器参数类型,将会抛出异常。

5.autodetect:首先尝试使用constructor来自动装配,如果无法工作,则使用byType方式。

发文预告:
Spring APO原理
Spring MVC原理
Spring Boot原理
JPA原理
Mybatis缓存
Tomcat构架

大家看到这里可以给点个赞呀

Spring IoC 详解:原理、实现与实战 本文系统介绍了Spring IoC的核心概念与实现机制。首先解释了IoC(控制反转)和DI(依赖注入)的关系,梳理了Bean、容器、作用域等核心概念。详细分析了XML、注解和Java Config三种配置方式,深入解读了IoC容器的工作原理和Bean生命周期。文章还提供了常见应用场景、源码机制简析、最佳实践和常见问题解答,强调IoC在系统解耦、配置管理等方面的优势。通过掌握这些内容,开发者能更有效地构建灵活、健壮的Spring应用。 阅读详情

相关推荐

分析攻击流量样本

利用wireshark分析.pcap攻击样本的攻击流程,利用漏洞等。

一段旅途 6842

spring 源码解读Spring IOC原理

Spring IOC设计原理解析:本文乃学习整理参考而来 一、 什么是Ioc/DI? 二、 Spring IOC体系结构 (1) BeanFactory (2) BeanDefinition 三、 IoC容器的初始化 1、 XmlBeanFactory(屌丝IOC)的整个流程 2、 FileSystemXmlApplicatio

Code-lover's Learning Notes 3510

黑金ZYNQ7010开发板开箱实测:从接线到串口通信的保姆级指南

本文提供黑金ZYNQ7010开发板从开箱到串口通信的完整实操指南。详细介绍了硬件连接、驱动安装、启动模式设置及串口终端配置等关键步骤,并针对常见问题提供排查思路,帮助FPGA开发者快速上手ZYNQ平台,建立稳定的调试通道。

weixin_29266749的博客 466

Spring IOC 实现原理

IOC(Inversion of Control)即控制反转,可以说是 Spring 最核心的部分,IOC 是一种思想,使得开发者从繁琐的对象交互中解脱出来,进而专注对象本身,更进一步突出面向对象。了解 IOC,需要先了解下依赖注入(Dependency Inversion,DI)。

一叶知秋的博客 1245

Angular 相关的知识点和项目汇总

Angular 知识点和项目汇总

weixin_45428910的博客 577

AD/Protel老手才知道的PCB过孔查看技巧:3分钟分清通孔、盲孔和埋孔

本文为PCB设计工程师提供了在Altium Designer/Protel中快速鉴别通孔、盲孔和埋孔的实用技巧。通过层叠管理器、高级筛选工具和实战五步法,帮助用户在3分钟内精准识别过孔类型,提升设计效率和电路性能。特别适合处理高密度HDI板卡中的复杂过孔布局。

weixin_29164497的博客 571

Spring:源码解读Spring IOC原理

转载了他的博客,写的非常详细!!!分享一下。地址为http://www.cnblogs.com/ITtangtang/p/3978349.html   文章- 0  评论- 86  一、 什么是Ioc/DI? 二、 Spring IOC体系结构 (1) BeanFactory (2) BeanDefinition 三、 IoC容器的初

qq_21361539的博客 1245

手把手教你学Simulink——基于经典PID控制的电机系统场景实例:永磁同步电机(PMSM) PID转速控制仿真

*永磁同步电机(PMSM)因其高效、高功率密度和良好的动态响应特性,在现代工业自动化、电动汽车驱动系统等领域得到了广泛应用。为了实现对PMSM的速度精确控制,通常采用矢量控制(Field Oriented Control, FOC)**策略,其中PID控制器是实现速度环和电流环调节的关键组件。本教程将带你使用构建一个基于PID控制的永磁同步电机转速控制系统仿真模型PMSM电机建模矢量控制(FOC)策略实现PID控制器设计系统仿真与调试控制效果分析本文介绍了如何使用构建一个。

MHD0815的博客 6950

Spring的IOC实现原理

阅读导航IOC容器的启动流程(基于注解)IOC的基本概念:自己实现IOC的主要流程自定义注解@MyComponent@MyValue@MyAutowired@MyQualifier自定义实体类AccountPersion自定义BeanDefinition包扫描工具类的编写MyAnnotationConfigApplicationContext(基于注解的扫描组件)构造器getBeanDefinitionscreateTargetObjectautowireObject对外提供的方法Test IOC容器的启动

tokyo_re_tao的博客 1591

059、RealBasicVSR 实战:真实场景视频超分的退化建模与优化技巧

本文分享了RealBasicVSR在真实场景视频超分中的实战经验。针对传统方法假设理想化下采样导致的性能瓶颈,重点阐述了三个关键技术点:1)通过可学习退化编码器建模复杂未知退化过程,避免手动设计退化参数的局限;2)采用双向传播和DCN对齐增强时序一致性;3)组合多种损失函数并优化训练策略(如余弦退火学习率、随机退化增强)。作者结合项目实践指出了显存管理、训练时长、评估指标等常见问题,并给出实用建议:优先验证数据退化复杂度,重视数据预处理,合理调整超参数。文章强调真实场景视频超分的核心在于让模型自适应未知退化

ai技术增长的博客 180

微信终于支持“多设备同时在线”?我用 NAS + Docker 搭了一个云端微信系统,多端共享24小时在线

通过Docker 容器,将微信运行在云端并通过浏览器访问,实现多设备共享同一微信会话 📱。本文详细介绍完整部署流程、docker-compose 配置及资源控制方案,让微信变成“可访问的云桌面应用” ✨

XiaoqiangClub的博客 865

《Spring》IOC实现原理

《Spring》IOC实现原理1. 概述2. 依赖倒置3. 控制反转4. 常用容器4.1 BeanFactory4.2 ApplicationContext5. Bean的作用域6. Bean的生命周期 1. 概述 IOC(Inversion of Control)控制反转,也称为DI(Dependency Injection)依赖注入。所谓IOC ,就是把原先代码里需要开发者实现的对象创建和关系依赖,反转交给SpringIOC容器管理对象的生命周期和对象之间的依赖关系。 Spring通过配置文件描述Be

飞飙的蜗牛 1万+

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

IOC容器(详细讲解)

IOC容器(详细讲解) 一、IOC底层原理 二、IOC接口 三、Bean管理

酷小亚 1万+

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

Spring之IOC底层实现原理

一、Spring框架概述 Spring框架是轻量级的开源的JavaEE框架 Spring框架可以解决企业应用开发的复杂性 Spring框架有两个核心部分:IOC和AOP Spring框架特点:方便解耦,简化开发;AOP编程支持;方便程序测试;方便和其它框架进行整合;方便事务事务操作;降低API开发难度 IOC概念和原理 1、什么是IOC? 控制反转,把对象创建和对象之间的调用过程交给Spring框架进行管理 使用IOC的目的:为了耦合度降低 做入门案例就是IOC实现 2、IOC底

Tough_dxx的博客 1万+

细致讲解Spring IOC原理,一篇全都掌握

Ioc—Inversion of Control,即“控制反转”。是一种设计思想。在Java开发中,Ioc意味着将你设计好的对象交给容器控制(由容器来创建及注入依赖对象),而不是应用程序直接控制。DI—Dependency Injection,即依赖注入:组件之间依赖关系由容器在运行期决定。形象的说,即由容器动态的将某个依赖关系注入到组件之中。依赖注入的目的是为了提升组件重用的频率,使系统灵活、可扩展。

乾坤未定,你我皆是黑马 1599

spring ioc实现原理

特性Spring IoC 实现控制反转将对象创建交给容器管理依赖注入支持字段、构造器、Setter 注入Bean 生命周期完整的初始化、销毁流程循环依赖使用三级缓存机制解决单例 Bean 循环依赖扩展机制提供多种扩展点(BeanFactoryPostProcessor、BeanPostProcessor)

红血哥 2161

Spring中ioc的实现原理

学习过Spring框架的人一定都会听过Spring的IoC(控制反转) 、DI(依赖注入)这两个概念,对于初学Spring的人来说,总觉得IoC 、DI这两个概念是模糊不清的,是很难理解的,今天和大家分享网上的一些技术大牛们对Spring框架的IOC的理解以及谈谈我对Spring Ioc的理解。 IOC理解 首先要分享的是Iteye的开涛这位技术牛人对Spring框架的IOC的理解,写得非常通俗易懂,以下内容全部来自原文,原文地址:http://jinnianshilongnian.iteye.com/bl

qq_43842093的博客 7192

Spring的IoC原理

1. IoC理论的背景 我们都知道,在采用面向对象方法设计的软件系统中,它的底层实现都是由N个对象组成的,所有的对象通过彼此的合作,最终实现系统的业务逻辑。 图1:软件系统中耦合的对象 如果我们打开机械式手表的后盖,就会看到与上面类似的情形,各个齿轮分别带动时针、分针和秒针顺时针旋转,从而在表盘上产生正确的时间。图1中描述的就是这样的一个齿轮组,它拥有多个独立的齿轮,这些齿轮相互啮合在...

csdn_life18的博客 9159

Spring——IOC底层原理

IOC底层原理、IOC接口(BeanFanctory)、IOC操作Bean管理(基于XML)相关介绍

qq_50233116的博客 5055

Spring IoC实现及原理

快速了解spring实现与底层原理

Guo_Liwei的博客 4278

最易懂的Spring IOC原理讲解

一、 IOC思想 IOC:控制反转Inversion Of Controller,控制即获取资源的方式;反转即颠倒的意思,意味着是该思想是对原先操作过程的逆转,即由主动的创建(对象为主的资源)变为被动的接收(对象为主的资源)。有以下几个难点 谁控制谁?传统Java SE程序设计,我们直接在对象内部通过new进行创建对象,是程序主动去创建依赖对象;而IOC是有专门一个容器来创建这些对象,即由IOC容器来控制对象的创建,也就是IOC容器控制了对象 控制了什么(IOC容器的特点与功能)? IOC容器负责实例化、

wwwwwww31311的博客 1293

Spring(一)—— Spring IOC

文章目录Spring简介无参构造创建实例对象有参构造创建实例对象 Spring简介 Spring是一个企业级开发框架,为解决企业级项目开发过于复杂而创建的,框架的主要优势之一就是分层架构,允许开发者自主选择组件。 Spring的两大核心机制是IOC(控制反转)和AOP(面向切面编程), 从开发的角度讲,我们使用Spring框架就是用它的IOC和AOP。 IOC是典型的工厂模式,通过工厂去注入对象,...

中都 3377

Spring IOC深入解析:从原理到实践

Spring框架是一个开源的Java EE框架,它最初由Rod Johnson在2003年创建。Spring框架的核心理念是通过IOC和面向切面编程(AOP)来解决企业应用开发中的复杂性问题。松耦合:通过IOC容器管理对象的创建和依赖关系,使得对象之间的耦合度大大降低。AOP支持:提供面向切面编程的支持,方便实现日志记录、事务管理等功能。声明式事务管理:通过配置文件即可完成事务的管理,无需手动编写事务代码。方便集成。

2403_87729201的博客 1194

详细说说Spring的IOC机制

Spring 的 IOC(控制反转)是框架的核心机制,用于管理对象的创建和依赖注入,通过将控制权从应用程序代码转移到容器,实现组件间的解耦。传统开发中,对象主动创建依赖,导致紧耦合。IOC 将对象创建和依赖管理的控制权交给 Spring 容器,由容器负责实例化、配置和组装对象。IOC 的具体实现方式,容器通过构造器、Setter 方法或字段注入,将依赖对象传递给目标组件。

大户影视的博客 1675

Spring IOC 容器详细讲解及使用

Spring IOC 容器详细讲解及使用一、Spring IOC 容器介绍1、IOC 思想2、IOC 容器概念3、Bean 的概念二、 Spring IOC 容器类型1、BeanFactory2、ApplicationContext2.1、 ClassPathXmlApplicationContext三、 Spring IOC 容器的使用1、搭建环境1.1、 创建项目1.2、 添加 jar 包1.3、 添加 Spring 配置文件2、通过 IOC 容器管理 Bean 对象2.1、 创建 UsersServi

康康要加油的博客 1271
上一篇: Spring 原理 完整整理 全网最全 等你来看
下一篇: 全网最全Spring APO原理 & Spring MVC原理解析
普通网友
博客等级 码龄6年 3807粉丝 69原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值