使用属性的setter方法注入

将A类的一个Bean看作类B的一个属性,并类B通过setter方法实现Bean的实例化,即声明变量。

使用setter方法注入是Spring框架中最主流的注入方式,利用Java Bean规范所定义的setter方法来完成注入,灵活且可读性高。

1、创建接口及接口的实现类
在com.itheima.ioc包中创建UserService接口、UserServiceImpl接口实现类,并通过setter方法依赖注入UserDao对象。

package com.itheima.ioc;public class UserServiceImpl implements UserService {//声明UserDao属性private UserDao userDao;//添加UserDao属性setter方法,用来实现以来注入public void setUserDao(UserDao userDao) {this.userDao = userDao;}public void say() {//调用userDao中的say方法,执行输出语句this.userDao.sayHello();//重写接口的抽象方法System.out.println("userService says hello world!");}}

2、将UserServiceImpl类托管给Spring
将UserService类托管给Spring,让Spring来创建对象,同时调用setter方法完成依赖注入。

<!-- 添加一個userService的實例 --><bean id="userService" class="com.itheima.ioc.UserServiceImpl"><!-- 使用setter方法将id为userDao的Bean实例注入到userService实例当中 --><property name="userDao" ref="userDao"></property></bean>

3、在TestDI中测试setter方法注入

package com.itheima.ioc;import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;public class TestDI {public static void main(String[] args) {//1、初始化Spring容器,加载配置文件ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");//2、通过容器获取userService实例UserService userService = (UserService)applicationContext.getBean("userService");//3、调用实例中的say方法userService.say();}}

运行结果:

使用属性的setter方法注入相关推荐

  1. 依赖注入,setter方法注入

    Spring框架的依赖注入通常有两种实现方式,一种是使用构造方法注入,另一种是使用属性的setter方法注入,这里是setter方法注入: 目录结构: 1.  创建com.DI 包,并在包中创建Tes ...

  2. Spring4.x(11)依赖注入-setter方法注入

    依赖注入-setter方法注入 通过无参构造函数+setter方法注入. 一.编写CustomerDao接口 package com.yiidian.dao; /*** * @author http: ...

  3. Spring的setter方法注入和构造器注入的对比

    我们知道,Spring的依赖注入,有setter方法注入,实例变量注入,构造器注入等. Spring官方文档里,提到: 依赖注入存在两种主要形式: 构造器注入 setter方法注入 注:其实对于Spr ...

  4. Spring Setter方法注入

    Setter方法输入 实体类Rumenz.java/Holder.java package com.rumenz;public class Rumenz {private Integer id;pri ...

  5. Spring官网阅读(二)(依赖注入及方法注入)

    上篇文章我们学习了官网中的1.2,1.3两小节,主要是涉及了容器,以及Spring实例化对象的一些知识.这篇文章我们继续学习Spring官网,主要是针对1.4小节,主要涉及到Spring的依赖注入.虽 ...

  6. 依赖注入_set方法注入_构造器注入

    属性注入 属性注入即通过 setter 方法注入Bean 的属性值或依赖的对象 属性注入使用 <property> 元素, 使用 name 属性指定 Bean 的属性名称,value 属性 ...

  7. 2.1、spring属性注入-Set方法注入

    代码地址:spring2.1.zip - 蓝奏云文件大小:15.1 K|https://www.lanzouw.com/imlEwvptwre Set方法注入的原理是spring先通过指定id的类的无 ...

  8. JavaScript中闭包实现的私有属性的getter()和setter()方法

    注意: 以下的输出都在浏览器的控制台中 <!DOCTYPE html> <html> <head><meta charset="utf-8" ...

  9. Spring框架中集合属性为对象的注入方法

    Spring框架中集合属性为对象的注入方法 前言 创建基础类 创建`Course`类 编写XML配置文件 创建测试类 执行结果 前言 在集合的属性注入中,如果注入属性为普通类型(String.int) ...

最新文章

  1. python实现yolo目标检测_从零开始PyTorch项目:YOLO v3目标检测实现
  2. python可以从事什么工作-学Python能干什么工作?工作前景怎么样?
  3. 1024分辨率章子怡/郭富城《最爱》HD国语中字
  4. MySQL LIMIT:限制查询结果的记录条数
  5. Django框架(13.Django中的查询集)
  6. 【springboot】spring-boot-devtools 热部署 导致 mvn spring-boot:run 出现异常
  7. android退出app代码,Android应用退出代码各种方式
  8. 《Java编码指南:编写安全可靠程序的75条建议》—— 指南19:对细粒度的安全定义自定义安全权限...
  9. 软工视频(33~36)-用户界面设计
  10. Python(^^^^^小技巧^^^^^——不定期更新)
  11. Chronometer控件实现的Android计时器
  12. 【Chrome小技巧】Chrome浏览器如何实现下载速度加快?
  13. 异常排查_Python-日志模块.NoSectionError: No section: '*' 错误?
  14. 解除百度文库复制限制
  15. Linux学习笔记——CentOS
  16. Android Binder机制浅析
  17. 多频外差三维重建 投影仪非线性误差补偿
  18. Web前端技术课后作业
  19. 3种夸克有多少组合?
  20. matlab去除图片水印_初试 Matlab 之去除水印

热门文章

  1. 树莓派53/100 - Pico小车v4版本,蓝牙、陀螺仪之后,再加上OLED显示屏
  2. 信息制图设计师是做什么的
  3. pip使用镜像下载第三方包
  4. Python使用open函数的buffering设置文件缓冲
  5. 预告片场网(最新电影预告片)--希望能在今年春节后正式上线!
  6. (C#脚本)Unity中角色移动的几种实现方法,以及心得。(适合新手入门)
  7. 微信小程序使用canvas绘制海报并保存本地相册
  8. 错误429,请求过多:对价格进行限制后该怎么办?
  9. 怎样修复Macbook键盘无法正常工作或打字?
  10. 望尘科技通过港交所聆讯:坚持深耕“体育游戏”的收获者