在线客服
扫描二维码
下载博学谷APP
扫描二维码
关注博学谷微信公众号
Spring框架实现依赖注入操作步骤解析。Dependency Injection是spring框架核心 ioc 的具体实现。程序在编写时通过控制反转把对象的创建交给了spring,但是代码中不可能出现没有依赖的情况。ioc 解耦只是降低他们的依赖关系但不会消除,坐等框架把持久层对象传入业务层而不用我们自己去获取。

依赖注入作用是在使用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,来对程序进行测试,编辑后所示:
文件2 TestDI.java
5、执行程序后控制台的输出结果如图:
运行结果
从上图可以看出使用Spring容器通过UserService实现类中的say()方法,调用了UserDao实现类中的say()方法并输出了结果。这就是Spring容器属性setter注入的方式也是实际开发中最为常用的一种方式。
— 申请免费试学名额 —
在职想转行提升,担心学不会?根据个人情况规划学习路线,闯关式自适应学习模式保证学习效果
讲师一对一辅导,在线答疑解惑,指导就业!
相关推荐 更多
Spring学习干货xml配置实例
今天,小编将分享大家在学习Spring框架的时候都会遇到的xml配置实例的干货讲解。大家都应该知道,Spring提供的最基本功能是,对象无需自己查找或者创建与它相关联的其他对象,由容器负责将需要相互协作的对象引用传递给各个对象。如果如果没有配置,Spring只是一个没有任何作用的空容器。因此Spring提供了使用XML文件配置和使用注解配置Bean的方式。
8004
2019-08-08 11:58:53
iHRM实战项目教程课程学什么?
要学习Activiti7工作流引擎、SAAS-HRM系统概述与搭建环境、SAAS-HRM-数据库设计与前端框架、SAAS-HRM系统用户权限设计概述、权限分配与jwt概述、权限分配与jwt概述、JWT的权限控制与Shiro入门、Shiro高级及SaaS-HRM的认证授权等内容。
7431
2019-11-08 10:24:19
MySQL学习总结之DQL查询语句
DQL查询语句又叫数据库查询语句,这是Java学习者在学习MySQL时,必须了解和掌握的知识点之一。众所周知,DQL查询语句有四种查询方式:排序查询、聚合函数、分组查询和分页查询。下面让我们一一仔细梳理这四种查询方式,有需要学习的小伙伴赶紧来看看MySQL学习总结之DQL查询语句的知识点吧!
5348
2020-02-11 23:24:05
程序员常用的JVM 配置参数汇总
JVM可以算是初级程序员进阶高级程序员必须要掌握的核心技能之一。另外,在许多面试过程中,JVM也是检验Java程序员能力水平的试金石。今天我们不谈Java底层实现的原理,而是为大家整理汇总了一些常见的,希望对大家编写代码有所帮助。
5507
2020-03-04 18:08:39
如何学习灵活运用Spring框架?
对程序员来讲,深入掌握并灵活运用Spring框架,是进军大厂、获得更好职业发展必须跨过的一道难关。那么,如何学习灵活运用Spring框架呢?本文将推荐你看看博学谷的《Spring高级之注解驱动开发详解》免费课程,该课程不仅脉络清晰,且兼具深度广度,下面我们来看一下课程详情。
5840
2020-07-13 11:31:04
