Spring之IOC概念

2023-05-16

一、什么是IOC

        1.IOC就是控制反转,把对象创建和对象之间的调用过程交给Spring进行管理。

        2.使用IOC目的:

        之前我们创建对象的方式都是用new的方式创建,这个方式有个缺点,被创建对象的类的位置一旦被改动,new就会报错,类与类之间的关联度太大,为了降低耦合度,将创建对象交给IOC容器处理。

二、IOC底层原理

        1.运用主要技术包括:xml解析、工厂设计模式、反射

        2.IOC简要过程(理解):

        IOC主要是通过内部工厂类解析配置文件id属性对应的class属性,利用反射Class.forName()方法,参数是class属性值,来回去对应的类,进而获取对象

  (1).在Spring xml配置文件里配置id与类的对应关系

<bean id="dao" class="com.qjb.dao.UserDAO"></bean>

   (2).通过一个工厂类,获取对象

Class UserFactory{
    public static UserDAO gerDAO(){
        String classValue = class属性值; //xml解析
        Class clazz = Class.forName(classValue);//反射创建对象
        return (UserDAO)clazz.newInstance();
    }
}

三、IOC接口

        1.IOC思想基于IOC容器完成,IOC容器底层就是对象工厂

        2.Spring提供IOC容器实行两种方式

       (1).BeanFactory:IOC容器实现,是Spring内部使用的接口,不提供给开发人员,此实现一般使用哪个Bean的时候才去创建

       (2).ApplicationContext:BeanFactory接口的子接口,提供更多更强大的功能,供开发人员使用,此实现与BeanFactory相反,他是容器启动时一次性创建所有的Bean

四、简单案例

<!--XML配置文件bean1.xml-->
<bean id="user" class="com.atqjb.Spring5.User"></bean>
package com.atqjb.Spring5;

public class User {
    public void add(){
        System.out.println("add......");
    }
}
@Test
public void testAdd(){
    //1加载spring配置文件
    ApplicationContext context =
            new ClassPathXmlApplicationContext("bean1.xml");
    //获取配置创建对象
    User user = context.getBean("user", User.class);
    System.out.println(user);
    user.add();
 }

7c9769873e9543a8a0fdbcb09f7e192a.png

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Spring之IOC概念 的相关文章

随机推荐

  • 【Hexo】GitHub_Page绑定阿里云域名

    前言 对于使用GitHub Pages的小伙伴来说 xff0c GitHub自带的xxx github io网址 xff0c 很容易被挡掉 xff0c 就像这样 我猜大概率是因为这种网址没有证书 没备案之类的 xff0c 导致浏览器检测不安
  • No cached version of com.android.tools.build:aapt2:3.3.2-5309881 available for offline mode.

    No cached version of com android tools build aapt2 3 3 2 5309881 available for offline mode 处理 xff1a gradlew assemble 清理
  • Android H5 webView加载过程黑屏优化处理

    Android H5 webView加载过程黑屏优化处理 一 问题 H5内嵌页面时 xff0c 用webView加载过程中出现黑屏 xff1a 优化处理 xff0c 在setWebViewClient的onPageStarted和onPag
  • 【无标题】

    Android ADB相关使用 Android ADB相关使用 获取手机安卓系统版本 xff1a adb shell getprop ro build version release获取手机SDK版本 xff1a shell getprop
  • Android APP间授权登录(无需SDK类似微信登录)(源码+解析)

    Android APP间授权登录 无需SDK类似微信登录 源码 43 解析 文章目录 Android APP间授权登录 无需SDK类似微信登录 源码 43 解析 前言一 需求二 A应用 调用者 业务代码与布局三 B应用 授权应用 业务代码
  • Android APP调起小程序流程源码+实例解析

    Android APP调起小程序流程源码 43 实例解析 刚刚完成的一个工作需求功能 APP调起指定小程序 读者比较喜欢有图看效果 再看内容 本文涉及点比较多 1 微信SDK集成 2 微信小程序开发 博主后面有充裕的时间会详细对这些知识点做
  • 安卓Android与H5双向交互MathJax展示数学公式(源码+解析)

    安卓Android与H5双向交互MathJax展示数学公式 源码 43 解析 博主就今天周五又做了个需求 xff08 安卓Android与H5交互 xff09 xff0c 原来上线的功能是服务器配置过来的学习报告 xff08 一个H5页面
  • 1 计算机网络体系结构与OSI参考模型

    文章目录 1 计算机网络概述1 1 计算机网络概念1 2 计算机网络的分类 2 OSI 七层参考模型应用层表示层会话层传输层网络层数据链路层物理层 3 OSI参考模型与网络排错4 OSI参考模型与网络安全5 TCP IP协议和OSI参考模型
  • Android之cardview属性以及阴影处理源码+实例

    Android之cardview属性以及阴影处理 开发中 项目会含有大量的图片需要展示 需要圆角图片 带圆角的组合控件等 本文对cardview使用 以及属性做开发记录 方便后来者查阅 博主也容易忘东西 先看效果图 博主开发的一个VR中控平
  • Android自定义底部弹出窗-dialog(2种实现分析+源码)

    Android自定义底部弹出窗 dialog 2种实现分析 43 源码 上线项目功能抽取 在项目开发中 我们会在许多地方会用到底部自定义弹窗 比如设置 个人账户退出 切换 照片的拍照或者相册的调出 或者一些底部弹出列表 本文对自定义底部弹出
  • 安卓Android阿里OSS上传图片(缩略图使用)三步完成+源码例子

    安卓Android阿里OSS上传图片 缩略图使用 三步完成 43 源码例子 博主在做这块阿里OSS上传 也是踩过不少相关的坑 并且阿里的官方文档也是不是很详细 也翻阅不少文章 感觉有所不足 所以记录本文 希望对后面采坑的读者有所帮助 本文目
  • 编程模拟生产者-消费者模型的进程控制(互斥与同步)

    编程模拟生产者 消费者模型的进程控制 xff08 互斥与同步 xff09 1 1 设计目的 加深对进程概念的理解 xff0c 明确进程和程序的区别进一步认识并发执行的实质用信号量的机制实现进程互斥的方法用信号量的机制实现进程同步的方法 1
  • openGauss 学习环境部署(docker方式),并使用dbeaver进行连接

    1 下载opengauss docker镜像 搜索opengauss镜像源 root 64 mongodb docker search opengauss INDEX NAME DESCRIPTION STARS OFFICIAL AUTO
  • 操作系统学习笔记

    1 1 5 中断和异常 早期的计算机 xff1a 各程序只能串行执行 xff0c 系统资源利用率低 为了解决这个问题 xff0c 人们发明了操作系统 xff0c 引入中断机制 xff0c 实现了多道程序并发执行 发生中断就意味着需要操作系统
  • Windows 下php多版本切换/升级

    之所以写这一篇博客也是因为最近学习Lavavel框架 6 9版本 需要php7 3 4版本 由于之前https blog csdn net Qzhsf article details 103695675安装的是7 1 1 xff0c 所以就
  • CentOS8安装JDK1.8

    文章目录 linux服务器上安装JDK1 8参考文章 linux服务器上安装JDK1 8 起因是在CentOS8上执行jps命令时 xff0c 报错 xff1a root 64 localhost kafka 2 13 2 8 0 jps
  • 基于SpringMVC的web工程的配置实现

    文章目录 使用web xml和SprignMVC配置文件1 新建maven工程 xff1a demo1002 修改pom xml3 添加web模块4 修改web xml xff0c 添加SpringMVC配置文件 xff1a springM
  • Spring之Spring概念

    什么是Spring xff1f 1 Spring是轻量级的开源的JavaEE框架 2 Spring可以解决企业应用开发的复杂性 3 Spring有两个核心 IOC和AOP 1 IOC 控制反转 xff0c 把创建对象过程交给Spring进行
  • 2 计算机网络性能指标

    文章目录 速率带宽吞吐量时延时延带宽积往返时间网络利用率 速率 连接在计算机网络上的主机在数字信道上传送数据位数的速率 xff0c 也称为data rate或bit rate 单位是b s kb s Mb s Gb s 比特 xff08 b
  • Spring之IOC概念

    一 什么是IOC 1 IOC就是控制反转 xff0c 把对象创建和对象之间的调用过程交给Spring进行管理 2 使用IOC目的 之前我们创建对象的方式都是用new的方式创建 xff0c 这个方式有个缺点 xff0c 被创建对象的类的位置一