栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

spring的ioc

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

spring的ioc

spring的核心技术:ioc,aop,能实现模块之间、类之间的解耦合。
依赖:class a 中使用了class b的属性或者方法,则称class a依赖class b。
1.ioc(Inversion of control):控制反转


使用ioc的目的是减少对代码的改动,实现不同的功能,即解耦合。
2.ioc的技术实现时DI(Dependency Injection,依赖注入)

spring是使用了di实现了ioc的功能,spring底层创建对象,使用的是反射。
3.实现步骤

(1)新建项目(之前的blog里写的创建maven项目的方法)
项目结构:

pom.xml文件如下:

pom.xml文件中properties标记的maven-compile都改为1.8(使得编译时生成的target文件夹中含有.xml文件),添加spring-context插件。
新建一个接口SomeServive:

新建接口实现类SomeServiceImpl:

resources目录下建立beans.xml文件:

这个文件是spring的核心,注意beans标记里的bean标记,每一个bean标记相当于new的一个对象(即用bean标记来替代代码中的new语句):

主程序代码:

ClassPathXmlApplicationContext类从类路径(编译生成的target文件夹下的classes文件夹寻找与参数指定的.xml文件,返回一个ApplicationContext对象,如果beans.xml不是在classes目录下则要修改路径字段:

ApplicationContext对象就是spring容器,通过容器的getBean()方法获取对象(注意别忘了强制类型转换),参数是.xml文件中bean标记的id值
运行程序,getBean()方法创建对象默认调用类中无参构造方法:

注意:当我们用获取同一个bean的对象赋给两个新建的不同的对象时 ,会发现它们指向同一个对象:

(2)获取spring容器中java对象的信息:

运行结果:


上图的输出结果是beans中所有bean的id值。
(3)spring还可以创建一个非自定义类对象


运行结果:

(4)spring给对象基本属性赋值

格式:

步骤:
在实现类中添加字段及其get,set方法并重载toString():

修改beans.xml:


注意:property标记给对象属性赋值是调用set()方法,如果类中未写则程序会报错。
(5)spring给对象引用类型属性赋值
格式:


本质上是一个bean创建对象时给属性赋值时调用set()方法时使用另一个bean创建的对象。
(6)构造注入

在实体类中添加含参数的构造方法:


或者:

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/356731.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号