spring应用上下文的理解

#容器

什么叫容器呢?

如果你想要一个手机,好这时候spring就给你一个手机.你想要使用的对象,spring就会给你,但是现在我们就会问那spring给的对象来自于哪里呢?

spring要负责的工作很多,那么多对象的创建管理都是它在负责,那肯定会有一个地方是负责造对象的.造手机的叫工厂,而spring造对象的不叫所谓的工厂,如果叫工厂有点low,所以给出一个高大尚的名称--容器.所以现在对容器这个概念有一个新的认识了吧.

容器是spring框架实现的功能的核心.(spring的核心是容器,这没有错,但是容器并不唯一,框架本身提供了多个容器的实现,具体的后面会讲).因为没有对象,你无法实现你想要的任何功能.

如果认为造对象是容器的全部功能那你就大错特错了,因为它比你想象的要强得多,它负责对象整个的生命周期的管理包括:创建,装配,销毁.

#IOC容器

容器中经常会用到一个术语就是IOC容器.全称:Inversion of Control.这是一种设计思想

怎么理解IOC呢?

在java开发中,将自己设计好的对象交给容器控制,而非在对象的内部控制.

那么问题来了,是谁控制谁呢?控制的是什么?为何是反转而不是正转,左转,右转啥的?哪些东西发生了反转?这都是问题

##第一个问题:

之前我们所学的对象是这样生成的:我们在对象的内部直接new来创建对象,是通过程序去主动创建对象.而IOC就不一样了,它有一个专门的容器来创建对象,通俗的讲就是它想创建什么对象,它说了算.

而现在谁控制谁这个问题当然就简单了,当然就是IOC控制对象.

##第二个问题:

控制的是什么呢?当然是外部资源一获取咯!(外部资源是一个广泛的定义:不只是对象,如文件啊,图片啊什么的这些)

##第三个问题:

为什么要中反转呢?只是Inversion的翻译吗?当然不是的.

在以前的设计中,由我们自己在对象中主动控制去直接获取依赖对象,也就是正转.而反转呢则是由容器来完成创建及注入依赖对象;因为这是一个被动的过程,我们并没有要求它(容器)这么做.而对象只是被动的接受依赖对象.

##第三个问题:

哪些东西发生了反转?

依赖对象获到被反转了.

所以汇成一句话就是:我们的应用程里不用再过对象的创建和管理对象之间的依赖关系了,这些都让IOC容器代劳吧.我们把对象的创建,管理的控制权都交给spring容器,这就是一种控制权的反转,至此我们就知道了为什么spring容器称之为IOC容器.

谁依赖于谁:当然是应用程序依赖于IoC容器;

为什么需要依赖:应用程序需要IoC容器来提供对象需要的外部资源;

谁注入谁:很明显是IoC容器注入应用程序某个对象,应用程序依赖的对象;

●注入了什么:就是注入某个对象所需要的外部资源(包括对象、资源、常量数据)。


我们可以说spring容器是IOC容器,而不能说IOC容器就是spring容器.

基于IOC容器的框架还有很多.

好了现在理解spring这个概念之后,你也不能做什么,光有这个容器你也造出不对象对吧!

要容器造什么对象是由我们自己决定的,决定对象间依赖关系的也是我们自己,容器只是提供管理对象的空间而已.那么问题就出现了,我们怎么向容器中放入我们需要的对象呢?

这就讲到我们要讲的重点了.应用上下文

#什么是应用上下文呢?

重点话语来了哦!重点,重点,重点.说了好多遍了.

将你需spring帮你管理的对象放入容器的一种对象.可以理解为spring容器抽象的一种实现.

ApplicationContext是一维护Bean定义以及对象之间协作关第的高级接口.

## spring中容器的实现大概分为两种:

1.本身不常用的BeanFactory,这是最简单的容器,只能提供基本的DI功能.

2.就是继承了BeanFactory后派生而来的应用上下文.其抽象接口也就是ApplicationContext.他就能提供更多企业级的服务.如解析配置文本信息.

有了上下文我们就能向容器注册需要spring管理的对象了.对于上下文抽象接口,spring也为我们提供了多种类型的容器实现,供我们在不同的应用场景选择.

① AnnotationConfigApplicationContext:从一个或多个基于java的配置类中加载上下文定义,适用于java注解的方式;

② ClassPathXmlApplicationContext:从类路径下的一个或多个xml配置文件中加载上下文定义,适用于xml配置的方式;

③ FileSystemXmlApplicationContext:从文件系统下的一个或多个xml配置文件中加载上下文定义,也就是说系统盘符中加载xml配置文件;

④ AnnotationConfigWebApplicationContext:专门为web应用准备的,适用于注解方式;

    ⑤ XmlWebApplicationContext:从web应用下的一个或多个xml配置文件加载上下文定义,适用于xml配置方式。



这算是读后笔记吧:来源于:https://www.cnblogs.com/chenbenbuyi/p/8166304.html

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 195,585评论 5 462
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 82,283评论 2 373
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 142,760评论 0 324
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,461评论 1 266
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,280评论 4 357
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,268评论 1 273
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,656评论 3 385
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,322评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,629评论 1 293
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,691评论 2 312
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,445评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,299评论 3 313
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,694评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,982评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,244评论 1 251
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,642评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,829评论 2 335

推荐阅读更多精彩内容