干货丨 Spring框架实现依赖注入操作,步骤详解!

Dependency Injection是spring框架核心 ioc 的具体实现。程序在编写时通过控制反转把对象的创建交给了spring,但是代码中不可能出现没有依赖的情况。

ioc 解耦只是降低他们的依赖关系但不会消除,坐等框架把持久层对象传入业务层而不用我们自己去获取。

 Spring框架实现依赖注入 

依赖注入作用是在使用Spring框架创建对象时,动态的将其所依赖的对象注入到Bean组件中,其实现方式通常有两种一种是属性setter方法注入,另一种是构造方法注入。

属性setter方法注入:

指IoC容器使用setter方法来注入被依赖的实例。通过调用无参构造器或无参静态工厂方法实例化Bean后,调用该Bean的setter方法即可实现基于setter方法的依赖注入。

构造方法注入:

指IoC容器使用构造方法来注入被依赖的实例。基于构造方法的依赖注入通过调用带参数的构造方法来实现,每个参数代表着一个依赖。

了解了两种注入方式后,下面以属性setter方法注入的方式为例讲解Spring容器在应用中如何实现依赖注入。

1、在com.itheima.ioc包中,创建接口UserService,在接口中编写一个say()方法:

UserService.java

2、在com.itheima.ioc包中创建UserService接口的实现类UserServiceImpl,在类中声明userDao属性,并添加属性的setter方法:

UserServiceImpl.java

3、在配置文件applicationContext.xml中创建一个id为userService的Bean,该Bean用于实例化UserServiceImpl类的信息并将userDao的实例注入到userService中,其代码如下:

在上述代码中<property>是<bean>元素的子元素,它用于调用Bean实例中的setUserDao()方法完成属性赋值,从而实现依赖注入。其name属性表示Bean实例中的相应属性名,ref属性用于指定其属性值。

4、在com.itheima.ioc包中创建测试类TestDI,来对程序进行测试,编辑后所示:

5、执行程序后控制台的输出结果如图:

运行结果

从上图可以看出使用Spring容器通过UserService实现类中的say()方法,调用了UserDao实现类中的say()方法并输出了结果。这就是Spring容器属性setter注入的方式也是实际开发中最为常用的一种方式。

 黑马程序员 

致力于培养高级软件工程师

96 位专职课研技术大牛

879 人严选教学团队

累计培养 30余万名 优质IT人才

以高品质教学质量赢得好口碑

部分学科最高优惠2000元

立即扫码抢占优惠名额

课程老师1对1服务,全程免费

????????????

JavaEE

HTML&JS+前端

Python+大数据开发

人工智能开发

UI/UE设计

软件测试

新媒体+短视频直播运营

产品经理

Linux云计算+运维开发

智能机器人软件开发

电商视觉运营设计

/

线上课程也可扫码咨询

更多疑问可添加播妞微信

heiniu526

- 推荐阅读 -

据调查:00后女程序员比例飙升!男程序员再找不到对象,可别怪我!

2021-08-02

滴滴程序员被亲戚鄙视!年薪80万不如二本教书的 ....

2021-07-31

程序员带半箱辣条参加东京奥运,网友:猝不及防一波狗粮!

2021-07-30

点个在看,8月好运满满

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值