文章目录
前言
上篇文章我们讲了
IOC
和
DI
两个核心概念,本篇文章我们会在
Spring
的环境下来实现它们💪💪。
1.IoC入门案例
我们先来实现
IoC
也就是
管理Bean
的这套模式,我们先来说说这套程序应该
怎么做
,对于
IoC
的入门案例,首先我们需要思考以下问题👇👇。
第一个问题,
管理什么?🎈🎈
也就是我的
Spring容器(也就是IoC容器,以下我们都称为Spring容器)
要管的东西是什么?那肯定是对应的
Bean
🎉🎉。也就是你原来造对象的那些类,是不是我要管完以后把它放到我们的Spring容器中变成Bean🚨🚨。所以说我们就知道管什么,也就是
service和dao
🚩🚩。
我们知道管理什么了,那
如何将被管理的对象告知Spring容器呢🎈🎈?
只有一种可能性,那就是用
配置
的方式来告诉Spring容器。也就是说我写个配置文件,里边写清楚
service
你管,
dao
你也管🤣🤣,所以说在这要用
配置
🚩🚩。
知道怎么样告诉Spring容器了,接下来
如何获取到Spring容器?🎈🎈
被管理的对象交给Spring容器,你也管好了,下边我要用了,我是不是得从你里边拿出来,你是谁呢,换句话说,Spring容器怎么得到呢✍️✍️,这是不是一个问题,那我们就想,Spring是一个技术,现在你要用它里边的东西,它必然得给你提供出来一个
接口
来让你用🎉🎉,不然我们怎么操作呢,所以说在这会有一个
接口
🚩🚩。
Spring容器得到后,
如何从容器中获取Bean?🎈🎈
那么接口有了,容器拿到了,我现在就想从你这里边把我配置的这些东西也就是
Bean
拿出来了,是不是得有个操作啊🚨🚨,那接口必然里边得有一些操作嘛,所以我们用
接口的方法
把它拿出来🚩🚩。
那我们现在就来按照以上过程来做一下☝️☝️,Bean是不是就得到了😄😄!在我们演示之前,还有一个问题,我们要使用Spring技术,肯定要导入一些
坐标
🎈🎈。
这些坐标应该写在哪里呢,应该写在
pom.xml
文件里边🎉🎉!至于导入什么,我们一会来看🤣🤣。
我们现在所看到的的程序结构☝️☝️,包括
业务层接口,业务层实现类,数据层接口,数据层实现类
,业务层接口对应的实现类中,有一个save()方法,方法里边先是一条打印语句,然后转调了
数据层
的save()方法👇👇。
而数据层这边也有一句打印,打印的东西
不一样
👇👇。
我们先来运行
程序
,这是非
Spring环境
下的👇👇。
运行结果👇👇
我们接下来说程序应该怎么写✍️✍️🎉🎉。
刚才说过了,我们现在想交给
Spring容器管理
,必须先来一个
配置文件
,那我们先去写一个配置文件👇👇。
在没配置之前,里边应该没有
Spring的结构
供我们选择,这是为什么呢?是因为我们还没有
导包
🎈🎈。
接下来我们在
pom.xml
文件中进行导包,5.2.10版本相对稳定一些👇👇。
看到如下图👇👇,就表示成功导入包了🎉🎉
现在我们就可以创建Spring的配置文件了👇👇🎈🎈。
那么该如何
命名Spring的配置文件呢🎈🎈?
应该将配置文件命名为
applicationContext.xml
把它创建出来👇👇
创建完成后,在里边我们就可以做具体的内容了🎈🎈
接下来我们就要在里边
配置对应的Bean
了,也就是说刚才咱们说的对象交到
Spring容器
中叫
Bean
,那么Bean该怎么配置呢🧐🧐👇👇 ?
通过属性Class
可以告诉
Spring容器
应该管理哪个对象,路径为
实现类
的全类名。现在我们已经配好了,配好以后我们想,我们已经把它配进去了,
Spring容器
里边也有了,回头我们要拿,没个名,我们怎么拿呀,根本不知道拿谁🤣🤣,
属性id
就是来解决这个问题的,名字可以随便起,到这里,我们就已经配好了一个
Bean
了🎉🎉。service的配置也一样👇👇。
下面我们就可以
拿容器
然后去拿这个
Bean
了🎈🎈。
我们再写一个新的App运行程序✍️✍️,在这里我们必须知道,要想拿Bean,
必须
先拿容器,怎么拿呢,这个东西又叫什么呢,这个名称和我们配置文件的名称刚好一样,叫做
applicationContext🤣🤣
,但是它是一个
接口
,我们要用它的实现类叫做
ClassPathXmlApplicationContext
👇👇。
现在我们已经创建好了一个容器了,如果我们没有加载我们的配置文件,是不是也什么也拿不到呀🚨🚨!所以要把这个配置文件作为参数告诉容器☝️☝️,到这里Spring
容器就拿到了🎉🎉。
完了以后应该干什么呢,是不是就应该拿我们的
Bean
了🚩🚩。那么怎么获取Bean呢,肯定是通过这个
Spring容器
来拿👇👇。
这个参数是什么呢,就是你配置的Bean叫啥名,这个参数就传什么😄😄。我们拿到的是一个Object对象,需要对它进行强转
☝️☝️。现在就拿到了,剩下的事情就和Spring没关系了🤣🤣,拿到对象直接调用里边的方法就行了 ☝️☝️。
我们这里拿的是dao
,
service
的原理也是一样的👇👇。
运行结果👇👇
到这里我们IoC
的入门案例就做完了🎉🎉
总结
在实现IoC的入门案例中,我们先进行了
导如入Spring坐标🚩🚩
,没这一步,连配置文件的结构我们都找不到🤣🤣,接下来定义
Spring管理的类(接口)🎈🎈
,第三步
创建Spring配置文件,配置对应类作为Spring管理的Bean
🎉🎉,我们需要注意的是Bean定义时id属性在同一个上下文中不能重复🚨🚨,,第四步
初始化Spring容器,通过容器来拿配置好的Bean
,一定要记住
我们是用它的实现类:ClassPathXmlApplicationContext
✍️✍️。
到这里我们就已经做完了IoC的入门案例了,虽然我们已经做完了案例,但是我们现在的业务层里边还是使用new
什么什么的,也就是说我们
充分解耦
的效果并未达到,怎么做呢,我们下篇文章再来讲解
DI的入门案例💪💪
。
最后,如果有什么错误的话,大家可以私信我📬📬,最后希望大家多多关注+点赞+收藏^_^🙏🙏,你们的鼓励是我不断前进的动力💪💪!!!
版权归原作者 见云彩 所有, 如有侵权,请联系我们删除。