当前位置: 首页 > news >正文

网站开发工作佛山网站建设方案咨询

网站开发工作,佛山网站建设方案咨询,做网站的草图 用什么画,wordpress 商品 模板下载介绍一下Spring的IOC ✔️引言✔️ lOC的优点✔️Spring的IOC✔️ 拓展知识仓✔️IOC是如何实现的? ✔️引言 所谓的IOC (inversion of control) ,就是控制反转的意思。何为控制反转? 在传统的程序设计中,应用程序代码通常控制着对象的创建和…

在这里插入图片描述

介绍一下Spring的IOC

  • ✔️引言
  • ✔️ lOC的优点
  • ✔️Spring的IOC
  • ✔️ 拓展知识仓
    • ✔️IOC是如何实现的?


✔️引言


所谓的IOC (inversion of control) ,就是控制反转的意思。何为控制反转?


在传统的程序设计中,应用程序代码通常控制着对象的创建和管理。例如,一个对象需要依赖其他对象,那么它会直接new出来对象。这样的设计通常被称为 “控制流程” 。


而在IOC 中,控制关系发生了反转。控制权被转移到Spring容器中,容器负责创建和管理对象,并在需要的时候将它们注入到应用程序中。


所以,原来这个对象的控制权在我们的代码中,我们自己new的对象,在Spring中,应用程序不再控制对象的创建,而是被动地接受由容器注入的对象。


我们拿代码来举个例了:


下面是一个没有IOC的例子:


class A {}Class B {// B需要将A的实例new出来,也就是我们说的控制private A a = new A();public void use() {System.out.print(a) ;}
}

当有了IOC之后


@Component  //说明A自己控制自己,把自己初始化出来,注入给了容器
class A {}class B {// B不需要控制a,直接使用。如果A没有把自己注入给容器,B就不能使用@Resourceprivate A a;public void use() {System.out .print(a);}
}

也就是说,没有Spring的话,我们要使用的对象,需要我们自己创建,而有了Spring的IOC之后,对象由IOC容器创建并管理,我们只需要在想要使用的时候从容器中获取就行了


值得说明的是,IOC只是一种思想和理念,可以有不同的实现方式。


✔️ lOC的优点


使用IOC,有最少三个好处:


1 . 使用者不用关心引用bean的实现细节,警如对于 B b = new A(c,d,e,f);来说,如果B要使用A,那还要把c,d,e,f多个类全都感知一遍,这显然是非常麻烦且不合理的


2 . 不用创建多个相同的bean导致浪费,仍然是

A b = new A();
A z = new A();

如果B和Z都引用了A,那么B和Z就可能new 两个A实例,实际上,我们只需要一个就好了。

3 . Bean的修改使用方无需感知。同样是上面的例子,假如说BeanA需要修改,如果没有IOC的话,所有引用到A的其他bean都需要感知这个逻辑,并且做对应的修改,但是如果使用了IOC,其他bean就完全不用感知到。


✔️Spring的IOC


对于Spring的IOC来说,它是IOC思想的一种实现方式。在容器启动的时候,它会根据每个bean的要求,将bean注入到SpringContainer中。如果有其他bean需要使用,就直接从容器中获取即可,如下图所示:


在这里插入图片描述

✔️ 拓展知识仓


✔️IOC是如何实现的?


使用Spring的IOC容器能力,非常简单,如下代码所示:


ApplicationContext context= new AnnotationConfigApplicationContext("cn.wxxlamp.spring.ioc");
Bean bean = context.getBean(Bean.class) ;
bean . use() ;

从上面的代码中,我们也能看出来Spring的IOC是如何实现的:

1 . 从配置元数据中获取要DI的业务POJO (这里的配置元数据包括xml,注解,configuration类等)


2 . 将业务POJO形成BeanDefinition注入到Spring Container中


3 . 使用方通过ApplicationContext从Spring Container直接获取即可。如下图所示:


在这里插入图片描述

http://www.ds6.com.cn/news/110514.html

相关文章:

  • 顶呱呱网站建设是外包的吗网络营销师报考条件
  • 武汉做网站推广哪家好整站优化加盟
  • phpcms获取网站名称百度会员登录入口
  • 网站分析模板怎样做推广是免费的
  • 奶茶微网站建设网上电商平台开发
  • 手机网站发展2020十大网络热词
  • 深圳网站制作企业邮箱网络推广方法怎么样
  • 关于校园网站建设的通知企业网站建设报价
  • 网站建站建设的公司磁力狗在线引擎
  • 网站开发 怎么才能发表情青岛seo公司
  • 重庆网站制作公司商铺营销推广方案
  • 轻量应用服务器可以做网站吗今日最新抗疫数据
  • 动态网站开发教材广东seo推广方案
  • 做国际黄金的网站陕西百度推广的代理商
  • 网站中的二级菜单怎么做23seo外链软件
  • 唐山中企动力做网站如何优化关键词搜索排名
  • 做外贸没有网站可以吗微信搜索seo优化
  • 网站怎么做推广和优化线上推广的好处
  • 淮南网云小镇的房子可不可以买企业网站seo平台
  • 上海建筑建材业网站办理大厅网站开发教程
  • 手机端网站建站互联网推广平台有哪些公司
  • 西安跨境电商平台网站优化营商环境 助推高质量发展
  • 购物网站线下推广办法崇左网站建设
  • 注销公司需要什么资料和流程北京seo排名公司
  • 建政府网站要多少钱平板电视seo优化关键词
  • 网站可以做电信增值哈尔滨优化网站方法
  • 成都微信网站建设多站长工具怎么关掉
  • c#可以做网站吗网络推广课程培训
  • 美的企业微信网站大学生网络营销策划书
  • 北京商城网站建设百度关键词推广一年多少钱