首页 > 其他分享 >spring-ioc容器理解

spring-ioc容器理解

时间:2022-12-22 18:11:30浏览次数:37  
标签:容器 对象 spring 配置 创建 ioc 属性

ioc:控制反转;将对象的创建、配置、销毁,生命周期的管理交予容器;
容器的核心功能可拆分为:

  1. 解析配置
  2. 创建对象
  3. 对象的生命周期管理

解析配置

容器对于一个项目要创建哪些对象,一开始是不清楚的;是靠配置来告知容器它具体要创建哪些对象以及对象的依赖关系等信息;(xml配置、注解)

创建对象

在工厂模式中,一个工厂去创建某种类型的类对象;但作为要创建所有类的工厂呢,Spring中的BeansFactory就可以做到;

生命周期管理

  • 对于每次都创建一个对象和每次都返回事先创建好的对象,spring中通过scope属性来区分:prototype标识返回新创建的对象;singleton标识返回创建好的对象;
  • 还可以配置lazy-init属性来配置是否懒加载;
  • init-method:创建好对象后会自己调用这个属性配置的方法;
  • destroy-method:销毁对象前,会自己调用这个属性配置的方法;如:释放数据库连接、关闭文件;

spring中的beansFactory负责把解析出来的Beandefinition集合加载到自己的属性中,将list转换成map:key为id,value为类对象;

标签:容器,对象,spring,配置,创建,ioc,属性
From: https://www.cnblogs.com/rbwbear/p/16998814.html

相关文章

  • SpringBoot项目Jar包构建Docker镜像
    在jar包同级目录创建Dockerfile文件,写入一下:FROMopenjdk:11MAINTAINERdemoADD[jar包文件][生成的镜像名称]EXPOSE8110//镜像暴露的端口号ENTRYPOINT["java",......
  • Docker容器配置Nacos、Sentinel
    nacosdockerrun-d-p8848:8848--namenacos--restart=always--envMODE=standalone--envSPRING_DATASOURCE_PLATFORM=mysql--envMYSQL_SERVICE_HOST=140.2......
  • 使用WinSW将springboot jar项目安装为windows服务
    1、下载WinSW:https://github.com/winsw/winsw/releases,此处下载WinSWv2.11.0版,以下几个版本都行:  此处使用WinSW-x64.exe2、假如jar文件名称为:hello.jar,就将WinSW-x......
  • SpringBoot
    概述把繁琐的spring配置进行了简化,Springboot自带服务器,所以项目可以直接以jar的形式直接来运行,方便的开发测试以及部署特点核心理念:约定大于配置,比如模型名和表名一......
  • SpringBoot注解最全详解(整合超详细版本)
    使用注解的优势:1.采用纯java代码,不在需要配置繁杂的xml文件2.在配置中也可享受面向对象带来的好处3.类型安全对重构可以提供良好的支持4.减少复杂配置文件的同时亦能享......
  • 从源码层面深度剖析Spring循环依赖
    作者:郭艳红以下举例皆针对单例模式讨论图解参考https://www.processon.com/view/link/60e3b0ae0e3e74200e2478ce1、Spring如何创建Bean?对于单例Bean来说,在Spring容器......
  • Spring注解之@Import
     @Import可以导入以下几种种类:普通类实现ImportSelector接口的类实现DeferredImportSelector接口的类实现ImportBeanDefinitionRegistrar接口的类 普通......
  • SpringMVC框架中的拦截器
    自定义拦截器步骤创建类,实现HandlerInterceptor接口,重写需要的方法preHandle方法是controller方法执行前拦截的方法可以使用request或者response跳转到指定的页面......
  • spring响应数据和结果视图
    返回值分类1、返回字符串Controller方法返回字符串可以指定逻辑视图的名称,根据视图解析器为物理视图的地址。@RequestMapping(value="/hello")publicStringsayHello(......
  • SpringMVC实现文件上传
    1、在springmvc.xml中配置文件解析器<!--配置文件解析器对象,要求id名称必须是multipartResolver--><beanid="multipartResolver"class="org.springframework.web......