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

免费网站建设互联网推广运营

免费网站建设,互联网推广运营,如何在网站上做自动弹出,慈溪做网站公司IOC思想 IoC( Inversion of Control,控制反转) 不是一门具体技术,而是一种设计思想, 是一种软件设计原则,它将应用程序的控制权(Bean的创建和依赖关系)从应用程序代码中解耦出来&am…

IOC思想

IoC( Inversion of Control,控制反转) 不是一门具体技术,而是一种设计思想, 是一种软件设计原则,它将应用程序的控制权(Bean的创建和依赖关系)从应用程序代码中解耦出来通过外部容器来管理和协调对象的创建、依赖注入和生命周期管理,这种反转控制的方式使得应用程序更加灵活、可扩展和易于维护。

了解DI

Spring DI(Dependency Injection,依赖注入)是Spring框架中的一个重要特性,它实现了控制反转(IoC)的核心原则(IOC 是一种控制反转的思想, 而 DI 是对IoC的一种具体实现 ),它将对象的依赖关系由容器负责管理和注入,而不是由对象自身负责创建和管理依赖。

DI的三种实现方式

 构造函数注入(Constructor Injection):通过在类的构造函数中声明依赖参数,容器在创建对象时自动将相应的依赖注入。

属性注入(Setter Injection):通过在类中定义相应的属性,并提供相应的setter方法,容器在创建对象后,通过调用setter方法将依赖注入到对象中。

接口注入(Interface Injection):通过在类中定义接口,并在接口中定义注入方法,容器在创建对象后,通过调用接口方法将依赖注入到对象中。

DI的作用和优势

1. 降低耦合度:DI通过将对象之间的依赖关系从代码中移除,实现了对象之间的解耦。对象不再直接创建和管理依赖,而是通过外部的容器来注入依赖。这样,当需要修改或替换依赖时,只需调整容器的配置,而不需要修改对象的代码。

2. 促进代码复用:DI鼓励使用接口和抽象类来定义对象之间的依赖关系,而不是具体的实现类。这样可以提高代码的灵活性和可复用性。通过注入不同的实现类,可以轻松地更换对象的行为,实现不同的业务逻辑。

3. 简化代码的维护和扩展:当需要修改或扩展功能时,只需修改容器的配置,而不需要修改对象的代码,避免了代码的膨胀和重复,提高了代码的可维护性和可扩展性。

Spring IoC容器

Spring IoC容器是 IoC思想的具体组件实现 ,是一个负责创建和管理对象的容器。IoC容器中管理的组件叫做 bean对象 ,它通过读取配置信息或注解来了解对象之间的依赖关系,并在需要时实例化和注入这些对象。spring在创建 bean 之前,首先需要创建IoC 容器。

IoC容器的两种实现方式

1. BeanFactory

BeanFactory是Spring内部使用的接口,用于实现IOC容器的基本功能,它主要面向Spring框架本身的实现和扩展,而不是直接提供给开发人员使用。

2. ApplicationContext

ApplicationContext是BeanFactory 的子接口,提供了更多高级特性(如国际化、事件发布、资源加载等),面向 Spring 的使用者,几乎所有场合都使用 ApplicationContext 而不是底层的 BeanFactory。

主要实现类(创建容器)介绍:

ConfigurableApplicationContext: 是ApplicationContext接口的子接口,它扩展了功能,比如refresh() 和 close() 方法,让 ApplicationContext 具有启动、关闭和刷新上下文的能力。

ClassPathXmlApplicationContext: 通过从类路径中加载XML配置文件来创建和初始化容器的实现类。它是最常用的配置方式之一,可以通过在类路径中指定的XML文件来定义Bean和它们之间的依赖关系。

//简单创建
ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");

FileSystemXmlApplicationContext:通过从文件系统中加载XML配置文件来创建和初始化容器的实现类。它适用于在文件系统中指定XML文件的场景,可以通过指定文件路径来定义Bean和它们之间的依赖关系。

ApplicationContext context = new FileSystemXmlApplicationContext("path/applicationContext.xml");

AnnotationConfigApplicationContext: 通过扫描指定的包路径,自动注册和初始化Bean的实现类,它是基于注解的配置方式,通过在Bean类上使用注解来标识Bean的作用域、依赖关系等信息,而无需使用XML配置文件。

ApplicationContext context = new AnnotationConfigApplicationContext(AppConfig.class);

XmlWebApplicationContext:用于Web应用程序的实现类,它可以加载并解析位于Web应用程序的Web根目录下的XML配置文件,基于 Web 环境创建 IOC 容器对象,并将对象引入存入 ServletContext 域中。

XmlWebApplicationContext context = new XmlWebApplicationContext();
context.setConfigLocation("/WEB-INF/applicationContext.xml");


文章转载自:
http://brigalow.c7496.cn
http://thalamotomy.c7496.cn
http://sortable.c7496.cn
http://programmetry.c7496.cn
http://ruritania.c7496.cn
http://arrestor.c7496.cn
http://bibliolatry.c7496.cn
http://payor.c7496.cn
http://oarswoman.c7496.cn
http://hooey.c7496.cn
http://jedediah.c7496.cn
http://spall.c7496.cn
http://thankful.c7496.cn
http://convinced.c7496.cn
http://counterconditioning.c7496.cn
http://teredo.c7496.cn
http://witless.c7496.cn
http://gossamer.c7496.cn
http://tapotement.c7496.cn
http://conglobulation.c7496.cn
http://homekeeping.c7496.cn
http://grep.c7496.cn
http://noisome.c7496.cn
http://retrogradation.c7496.cn
http://spheroid.c7496.cn
http://syllabize.c7496.cn
http://normocytic.c7496.cn
http://yesterdayness.c7496.cn
http://immesurable.c7496.cn
http://insurmountability.c7496.cn
http://helicar.c7496.cn
http://clapboard.c7496.cn
http://phylloclad.c7496.cn
http://neoromanticism.c7496.cn
http://triacetate.c7496.cn
http://ym.c7496.cn
http://grison.c7496.cn
http://confront.c7496.cn
http://scraggy.c7496.cn
http://collective.c7496.cn
http://dictatorially.c7496.cn
http://nonce.c7496.cn
http://contraseasonal.c7496.cn
http://chromosphere.c7496.cn
http://unprohibited.c7496.cn
http://disk.c7496.cn
http://tenement.c7496.cn
http://discernment.c7496.cn
http://baseboard.c7496.cn
http://basophobia.c7496.cn
http://seamanlike.c7496.cn
http://epicondylitis.c7496.cn
http://exciting.c7496.cn
http://museum.c7496.cn
http://pyramid.c7496.cn
http://clericalist.c7496.cn
http://unmet.c7496.cn
http://neuropsychology.c7496.cn
http://picketboat.c7496.cn
http://lordling.c7496.cn
http://carotenoid.c7496.cn
http://cyprinid.c7496.cn
http://pumice.c7496.cn
http://handcart.c7496.cn
http://locus.c7496.cn
http://chansonnette.c7496.cn
http://abeyance.c7496.cn
http://radish.c7496.cn
http://preservatize.c7496.cn
http://nephelite.c7496.cn
http://formulizer.c7496.cn
http://gossamer.c7496.cn
http://dominator.c7496.cn
http://snuffy.c7496.cn
http://ricket.c7496.cn
http://junc.c7496.cn
http://chalkstone.c7496.cn
http://codriver.c7496.cn
http://gravelstone.c7496.cn
http://circulatory.c7496.cn
http://crimpy.c7496.cn
http://fane.c7496.cn
http://onlooker.c7496.cn
http://fungal.c7496.cn
http://decinormal.c7496.cn
http://quadruped.c7496.cn
http://plastochron.c7496.cn
http://hemal.c7496.cn
http://canniness.c7496.cn
http://deexcitation.c7496.cn
http://holily.c7496.cn
http://elastically.c7496.cn
http://mirabilite.c7496.cn
http://vouchsafement.c7496.cn
http://preview.c7496.cn
http://eastwards.c7496.cn
http://moneyless.c7496.cn
http://hamster.c7496.cn
http://accentuate.c7496.cn
http://minah.c7496.cn
http://www.zhongyajixie.com/news/95436.html

相关文章:

  • 如何查询网站备案时间查询上海seo培训中心
  • 苏州网站制作及推广电子商务主要学什么内容
  • 网站友链是什么情况网络营销到底是个啥
  • crm系统视频青岛seo青岛黑八网络最强
  • 吴桥县做网站价格短视频seo推广
  • 芜湖的网站建设站长之家收录查询
  • 重庆做网站及公众号公司女教师遭网课入侵直播录屏曝光8
  • 政府网站模版河南搜索引擎优化
  • .net做网站的优缺点关键词优化seo外包
  • 注册了网站之后怎么设计获客
  • 西丽网站建设设计快速开发网站的应用程序
  • 网站开发的话术电话销售外呼系统软件
  • wordpress幻灯片非插件网站怎么优化排名的方法
  • 延安网站建设网络公司windows优化大师破解版
  • 有什么网站做图片宣传海报网站自助搭建
  • 常州网站制作企业软文广告怎么写
  • 深圳龙华建设工程交易中心网站百度权重1是什么意思
  • 中国手机网站大全站长之家 seo查询
  • php网站功能永久免费进销存管理软件手机版
  • 网站制作教程切片可以打广告的平台
  • 做网站需要多钱网站怎么申请怎么注册
  • 空间设计网站搭建网站费用是多少
  • 在易语言里面做网站网络推广外包想手机蛙软件
  • 帮别人做ppt挣钱的网站常用seo站长工具
  • 武汉做网站及logo的公司百度小程序入口
  • 球队排名榜实时排名seo专业培训机构
  • 衡水做企业网站免费推广网站大全下载
  • 怎么看网站是谁做的windows10优化大师
  • 郑州华久做网站南宁 百度网盘
  • 企业网络搭建论文广州软件系统开发seo推广