转 IOC:主要概念

Spring之IOC、核心容器和Bean概念详解     这一周忙了很多与代码无关的事,感觉心态上还是有些急躁,周中挑几个晚上看了一些文章,上午起来总结了一下,下午开始写博客,因为没有时间撸代码,所以就打算先把看到的概念梳理梳理,磨刀不误砍柴工。    首先来看一看什么是IOC,他的全称是Inversion of Control,即控制反转,如果上网找绝大多数的概念是这样说的:Spring实现了把原始的通过代码操纵的组件和应用的调用权利交给了容器... 阅读详情

http://wuxilin.cnblogs.com/archive/2006/04/21/381430.html 

 

 题记:
         这是一篇译文,出自Castle的官方站点的文档中心,围绕着IOC的基本概念介绍了Castle里面的MicroKernel 和Facility等,对于想学习Castle.Windsor的朋友来说,仔细阅读本文将让之后的学习有个较为清晰的轮廓.E文好的朋友可以直接去看原文,地址是:http://www.castleproject.org/index.php/IoC:Main_concepts  上面还有许多的好文章,如果有朋友需要,我将陆续的再翻译一些:)(翻译的不好就请包涵了,呵呵)


IoC:主要概念
对容器,尤其是MicroKernel的概念的深刻理解将有助于你对它的熟练使用尤其是扩展。
内容结构:
1,什么是控制反转的容器?
 1.1 什么是Castle的MicroKernel
2,概念
 2.1服务/组件
 2.2子系统
 2.3Facilities
   2.3.1 新的语义
   2.3.2 集成

什么是控制反转的容器?
所谓的控制反转的容器是种可以注册类,并在适当的时候对它们作用的工具—通常是要执行一些有用的工作,否则就没有意义了.

在非常底层的地方,容器将通过类之间的依赖关系将它们联系起来,通常被称做自动装配.但你这么做的理由是什么呢?这只在你需要设计一个松耦合的应用程序时才是有意义的.如果你的设计方案是标准的意大利面条似的设计,那控制反转的容器帮不了你太多.

不过,这篇文章并不是要尽力说服你来相信IOC概念的益处.


什么是Castle的MicroKernel
MicroKernel是IOC容器在Castle上的一个具体实现.它将有益于提供一组"特色"的交集,这个交集将对一系列组件起作用而不让他们互相影响
例如,你可以为你的组件使用AOP,日志和事务处理.你的组件并不需要关心有什么作用在他们上面,同时,AOP也不会干扰日志和事务等等.我们把这些包装好的"特色"称为Facilities.以后我们将更多的讨论它们.


概念
从最开始,我们就不打算创建一个可以支持开发者们所遇到的每个场景的容器.相反,我们把精力都投入在创建一个轻量级并且高可扩展性的容器上.
这里所说的扩展并不是像你创建子类来丰富父类那样的垂直扩展.虽然你可以那么干,但是MicroKernel是被设计成你可以通过替换关键块或者向里注册Facilities来达到垂直或水平扩展的效果.
在深入更具体的细节前,认可这个关键概念对于余下的文档的理解将是非常重要的.


服务/组件
一个组件,就是一个小小的可重用的代码单元.它只暴露和实现一个服务.在实际应用中,一个组件就是一个从服务(接口)实现出来的类.这个接口就是服务的契约,通过它们我们可以构建一个抽象层,当我们替换服务的具体实现时,将不产生任何的错误.


子系统
子系统被MicroKernel用于操作它外部的一些东西.比如,配置和类型转换被子系统操作,它们可以轻易的被替换或者扩展以适应某个需求,只需要遵守契约即可.


Facilities
Facilities是单元的扩展.它增强了容器的功能,提供了新的语义并且常常与外部工具或框架集成到一起.我们当前就拥有一组Facilities,你可以使用它们尤其是通过观察它们的实现方式来学习更多的知识.

新语义
以下的Facilities是加入到MicroKernel的新语义的例子:

Spring中的IoC的基本概念及实现原理 本篇文章内容基于《Spring 5企业级开发实战》。 1. IoC的概念 1.1依赖倒置原则 1.2依赖注入 2. Spring IoC的实现方式 2.1 XML方式 2.2注解方式 3. Spring IoC实现原理解析 3.1 BeanFactory代码解析 3.2 ApplicationContext代码解析 3.3 BeanDefinition代码解析 3.4 ... 阅读详情

相关推荐

Spring入门到精通:第二章 IOC容器(XML方式):1.IOC概念

百度百科表述: 控制反转(Inversion of Control,缩写为IOC),是面向对象编程中的一种设计原则,可以用来减低计算机代码之间的耦合度。其中最常见的方式叫做依赖注入(Dependency Injection,简称DI),还有一种方式叫“依赖查找”(Dependency Lookup,简称DL)。通过控制反转,对象在被创建的时候,由一个调控系统内所有对象的外界实体将其所依赖的对象的引用传递给它。也可以说,依赖被注入到对象中。 上面的描述看起来是不是根本不知道所以然,我们接下来...

悟纤学院 1万+

IOC:主要概念

题记: 这是一篇译文,出自Castle的官方站点的文档中心,围绕着IOC的基本概念介绍了Castle里面的MicroKernel 和Facility等,对于想学习Castle.Windsor的朋友来说,仔细阅读本文将让之后的学习有个较为清晰的轮廓.E文好的朋友可以直接去看原文,地址是:http://www.castleproject.org/index.php/IoC:Main_...

weixin_30725467的博客 175

XC7K325T FPGA硬件设计实战:从板级原理图到高速接口优化

本文以XC7K325T FPGA为核心,详细阐述了从板级原理图设计到高速接口优化的完整硬件实战流程。内容涵盖芯片管脚与电源规划、时钟复位配置电路设计,并重点解析了DDR3内存子系统以及PCIe与光纤接口等高速电路的原理图与PCB设计要点,旨在帮助工程师构建稳定可靠的高性能硬件平台。

python9snake的博客 513

Castle学习笔记----初探IOC容器

      Windsor是Castle 的一个IOC容器。它构建于MicroKernel之上,功能非常之强大,能检测类并了解使用这些类时需要什么参数,检测类型和类型之间工作依赖性,并提供服务或者发生错误时提供预警的机制。       通常IOC实现的步骤为-->建立容器-->加入组件-->获取组件-->使用组件. 1.建立容器      建立容器也就是IWind...

weixin_34163553的博客 172

51雾化器实现

1. 雾化器简介 雾化器是将试液雾化的一种器械。雾化器是原子化系统的重要部件,其性能对测定的精密度和化学干扰等产生显著影响。因此要求雾化器喷雾稳定、雾滴细小、均匀和雾化效率高。雾化器的类型有超声雾化器,空气压缩式雾化器,网式雾化器。超声雾化器因其价格合适,适合家用,被广泛应用于加湿器,香薰机等各种小家电,也在医疗领域有很多的应用。家用雾化器的主要器件是一枚雾化片。 家用雾化器分为两种不同类别雾化片,实孔雾化片和微孔雾化片,这两种的喷雾方法和工作原理是有所不同的。不同的雾化片需要特定的频率才能工作。 实孔雾

qq_42415953的博客 2万+

从零到一:NI USB-8506 LIN通讯的驱动安装与硬件调试全攻略

本文详细介绍了NI USB-8506 LIN通讯设备的驱动安装与硬件调试全流程,包括硬件准备、驱动下载与配置、NI MAX设置及常见问题解决方案。通过实战应用与性能优化技巧,帮助用户快速掌握LIN通讯技术,适用于车载数据记录和自动化测试等场景。

weixin_28273593的博客 924

微软IOC容器和Castle配合

(1)添加虚方法或接口修饰需要被代理的方法和类 (2)定义拦截器:假设日志记录工具 (3)使用Castle容器将拦截器和被代理对象关联。(1) 注册解析器:告知Castle容器从微软IOC容器中获取对象。(3)使用工厂模式将Castle对象放入微软IOC容器中。项目使用的是微软的IOC容器,但是AOP代理使用Castle。3.微软IOC容器从Castle容器中获取代理对象。1. 使用Castle(使用虚方法或接口)

weixin_40919495的博客 507

2024年全国大学生电子设计竞赛A题_AC-AC变换电路并联运行

AC-AC变换电路并联运行(A 题)【本科组】

qq_74395263的博客 7839

Castle 一些好的连接

http://terrylee.cnblogs.com/archive/2006/04/28/castl_ioc_article.html http://www.360doc.com/content/07/0812/12/3630_668502.shtml http://martinfowler.com/articles/injection.html

lyljp的专栏 458

工业级4~20mA转0~3V信号调理电路原理图设计,已量产(电流传感器)

在工业现场,4~20mA 电流信号是模拟量传输的 “老熟人”—— 抗干扰强、能跑长距离,但嵌入式 MCU 的 ADC 一般只认电压信号。最近做项目时,我设计了一款能覆盖 0~25mA(含超量程冗余)、线性输出 0~3V 的调理电路,经过现场调试挺稳定,分享下细节。

不脱发的程序猿 528

RT-DETR改进策略【注意力机制篇】| 2024 PPA 并行补丁感知注意模块,提高小目标关注度

本文记录的是利用改进检测精度,详细说明了优化原因,注意事项等。原论文在红外小目标检测任务中,小目标在多次下采样操作中容易丢失关键信息。通过替代编码器和解码器基本组件中的传统卷积操作,更好地保留小目标的重要信息。HCF-Net: Hierarchical Context Fusion Network for Infrared Small Object Detection采用多分支特征提取策略,通过不同分支提取不同尺度和层次的特征。利用局部、全局和串行卷积分支,对输入特征张量进行处理。通过控制 patch si

Limiiiing的博客 1648

.NET开源项目介绍及资源推荐:IOC容器篇

关于IOC的概念就不多说了,在.NET平台下,比较优秀的IOC容器框架有如下四种,本文试图作一个简单的介绍,以及推荐一些各个框架的学习资源。 一.Castle 在Castle中包含了一组开发框架,它里面的IOC容器是Windsor,目前Castle已经发布了RC1版本,其中Windsor已经是RC3了。在Windsor中提出了自动装配的概念,由容器来自动管理组件之间的依赖关系,无需用户去编写X...

weixin_34315189的博客 186

Vue3 - 超详细最新 wangEditor V5 富文本编辑器安装引入及使用教程,提供工具栏配置、基础富文本功能、API使用示例教程等(新手小白快速引入并植入到项目中)

vue3,wangEditorv5富文本编辑器,wangEditorv5官方文档,vue3最新安装wangEditorv5富文本详细使用教程,vue3使用wangEditorv5编辑器示例代码,vue3网站网页安装植入富文本编辑器教程,vue3wangEditor使用api,vue3安装富文本控制台出现报错如何解决,vue3wangEditor-v5工具栏配置,vue3中使用富文本编译器wangEditor5的方法,wangeditor5在vue3中的全使用过程,vue3超详细最新wangedi

🏆 前端领域优质创作者 4253

Spring的第一个核心功能IOC

IOC(Inversion of Control):即控制反转,把对象的创建、赋值、管理工作都交给代码之外的容器实现,或由其它外部资源实现。

Rocky的博客 200

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

IOC概念的详解

1.1.IOC是什么?        Ioc—Inversion of Control,即“控制反转”,不是什么技术,而是一种设计思想。在Java开发中,Ioc意味着将你设计好的对象交给容器控制,而不是传统的在你的对象内部直接控制。 ●谁控制谁,控制什么:传统Java SE程序设计,我们直接在对象内部通过new进行创建对象,是程序主动去创建依赖对象;而IoC是有专门一个容器来创建这些对象,即由...

菜鸟不会飞 1万+

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

IOC(概念和原理)

1、什么是IOC 1)控制反转,把对象创建和对象之间的调用过程,交给Spring进行管理。 2)使用IOC目的:为了耦合度降低 2、IOC底层原理 1)XML解析、工厂设计模式、反射 2)IOC过程 第一步:xml配置文件,配置创建的对象 <bean id="dao" class="com.zsh.UserDao"></bean> 第二步:有service类和dao类...

努力努力小张的博客 4748

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

IOC和AOP的概念

Spring的两大核心:IOC和AOP 一、IOC的概念 IOC 全称为 Inversion of Control,翻译为 “控制反转”,它还有一个别名为 DI(Dependency Injection),即依赖注入(在Spring框架负责创建Bean对象时,动态的将依赖对象注入到Bean组件)。 对象A依赖于对象B,当对象 A需要用到对象B的时候,IOC容器就会立即创建一个对象B送给对象A。IOC容器就是一个对象制造工厂,你需要什么,它会给你送去,你直接使用就行了,而再也不用去关心你所用的东西是如何

qq_44543430的博客 1万+

Spring核心概念IOC/DI、IOC容器和Bean原理及实现

Spring核心概念IOC、DI、IOC容器、Bean的原理及实现,具体概念讲解、案例分析,Spring入门必读!

m0_73500410的博客 1363

IOC概念和原理

1.什么是IOC IOC即为控制反转,把对象的创建和对象之间的调用过程,交给Spring管理。不需要像se阶段一样new对象。 使用IOC的目的:为了降低耦合度。所谓耦合度就是某模块(类)与其它模块(类)之间的关联、感知和依赖的程度,是衡量代码独立性的一个指标,也是软件工程设计及编码质量评价的一个标准。 2.IOC的底层原理 假如有以上俩个类,传统创建对象我们需要在UesrService类中调用uesrDao中add方法需要先在UesrService中new uesrDao的对象,再调.

weixin_52875557的博客 7509

IOC(概念和原理)

1.什么是IOC (1)控制反转,把对象的创建和对象之间的调用过程,交给Spring管理 (2)使用IOC的目的:降低耦合度 (3)做入门案例就是IOC实现 2.IOC底层原理 (1)xml解析、工厂模式、反射 3.画图解析 4.IOC(接口) 1.IOC思想基于IOC容器完成,IOC容器底层就是对象工厂 2.Spring提供IOC容器实现两种方式:(两个接口) (1)BeanFactory:IOC容器基本实现,是Spring内部的使用接口,不提供开发人员使用 *加载配置文件时候不会创建对象,在使用或

weixin_44223212的博客 1万+

Spring核心概念-IoC

/ Dao 层@Override// Service 层// 待解耦点!@Override。

2301_79518809的博客 797

Spring IoC 基础概念

目录一、IoC 相关概念1、什么是 IoC?2、为什么叫做控制反转?3、IoC 解决了什么问题?4、IoC 和 DI 的区别二、Spring IoC 基础概念1、 BeanFactory 与 ApplicationContext 区别:2、Bean 的 X 及生命周期1)作用范围的改变2)不同作用范围的生命周期3、Bean 标签属性1)id 属性:2)class 属性:3)name 属性:4)factory-bean 属性:5)factory-method 属性:6)scope 属性:7)init-meth

jason559的博客 1120

IOC的概念和原理:什么是IOC?、IOC的底层原理、图示、IOC接口介绍

什么是IOC?、IOC的底层原理、图示、IOC接口介绍

yshir 3272

Spring中IOC容器概念

IOC容器概念1、普通容器2、复杂容器3、IOC思想① 获取资源的传统方式②控制反转方式获取资源③DI4、 IOC容器在Spring中的实现① BeanFactory②ApplicationContext③ApplicationContext的主要实现类 1、普通容器 ① 生活中的普通容器 例如杯子、水桶,用来存储,没有更多功能 ② 程序中的普通容器 数组 集合:list 键值对: map 2、复杂容器 ① 生活中的复杂容器 例如学校,有学生、老师、领导、工作人员、教室、宿舍等等 ② 程序中的复杂容器

weixin_45135068的博客 956

Spring IoC容器的概念以及基于XML的IoC装配【一万字】

基于最新Spring 5.x,详细介绍了Spring入门案例的搭建,以及基于XML的核心IoC机制的配置和使用。适合Spring初学者。

终生学习践行者 4602
下一篇: WLI:There are running instances with incompatible serialization shape问题解决
fzzmouse
博客等级 码龄21年 14粉丝 10原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值