Spring-IOC

IOC:把创建对象、赋值的工作交给容器实现,也就是对象的创建是由外部资源实现(容器创建对象)

  1.控制:创建对象,对象的属性赋值,对象之间的关系管理

  2.反转:

     正转:由于开发人员在代码中,通过new一个对象,开发人员主动管理。

     反转:把创建对象的权限给容器管理,给对象赋值

作用:在不修改代码的情况下,能够让这个对象拥有不同的功能,修改对象更容易一些,不把对象写死

servlet:也实现了ioc,列如BaseController

 

IOC的技术实现,

        DI  是ioc的技术实现,

        DI:依赖注入,子需要在程序中提供使用的对象名称就可以,至于这个对象如何创建、赋值、

          查找都由容器内部实现。

        DI的实现:1.通过xml配置来实现   2.通过注解来实现

          

spring底层创建对象,使用的是反射机制

spring创建对象: 是由spring的配置文件实现,声明bean ,就是告诉spring要创建哪个对象

示例:

  1.使用ApplicationContext  就是spring的容器,然后通过获取某个对象

    String config="beans.xml"  //配置文件的名称

    ApplicationContext ac=new ClassPathXmlAppclicationContext(config);//创建spring容器

    ac.getBean("配置文件中bean的id值");//完成获取对象------可以创建自定义和非自定义的对象,由xml配置 

注意在创建spring容器的时候,会创建配置文件中所有的对象,也是会new所有的对象

 

 

说明:spring的ioc,ioc目的是控制反转依赖注入。与工厂模式类似,不同的是工厂是在类中定义死,如果修改的话还需要修改Java代码,重新编译,而ioc则不需要,只要在xml修改属性就行,由于

ioc底层用到反射机制动态生成对象,效率上还比工厂模式快一些。

spring容器,当作控制的反转,容器的方法,可以理解为注入的方法

Spring依赖注入的方式主要有四个,基于注解注入方式、set注入方式、构造器注入方式、静态工厂注入方式。

什么是反射?

反射是一种能够在程序运行时动态访问、修改某个类中任意属性(状态)和方法(行为)的机制

在ioc就是用反射来  通过类的路径(就是个字符串)来new一个类

 

posted @   折咻  阅读(25)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示