使用属性的setter方法注入
使用属性的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方法注入相关推荐
- 依赖注入,setter方法注入
Spring框架的依赖注入通常有两种实现方式,一种是使用构造方法注入,另一种是使用属性的setter方法注入,这里是setter方法注入: 目录结构: 1. 创建com.DI 包,并在包中创建Tes ...
- Spring4.x(11)依赖注入-setter方法注入
依赖注入-setter方法注入 通过无参构造函数+setter方法注入. 一.编写CustomerDao接口 package com.yiidian.dao; /*** * @author http: ...
- Spring的setter方法注入和构造器注入的对比
我们知道,Spring的依赖注入,有setter方法注入,实例变量注入,构造器注入等. Spring官方文档里,提到: 依赖注入存在两种主要形式: 构造器注入 setter方法注入 注:其实对于Spr ...
- Spring Setter方法注入
Setter方法输入 实体类Rumenz.java/Holder.java package com.rumenz;public class Rumenz {private Integer id;pri ...
- Spring官网阅读(二)(依赖注入及方法注入)
上篇文章我们学习了官网中的1.2,1.3两小节,主要是涉及了容器,以及Spring实例化对象的一些知识.这篇文章我们继续学习Spring官网,主要是针对1.4小节,主要涉及到Spring的依赖注入.虽 ...
- 依赖注入_set方法注入_构造器注入
属性注入 属性注入即通过 setter 方法注入Bean 的属性值或依赖的对象 属性注入使用 <property> 元素, 使用 name 属性指定 Bean 的属性名称,value 属性 ...
- 2.1、spring属性注入-Set方法注入
代码地址:spring2.1.zip - 蓝奏云文件大小:15.1 K|https://www.lanzouw.com/imlEwvptwre Set方法注入的原理是spring先通过指定id的类的无 ...
- JavaScript中闭包实现的私有属性的getter()和setter()方法
注意: 以下的输出都在浏览器的控制台中 <!DOCTYPE html> <html> <head><meta charset="utf-8" ...
- Spring框架中集合属性为对象的注入方法
Spring框架中集合属性为对象的注入方法 前言 创建基础类 创建`Course`类 编写XML配置文件 创建测试类 执行结果 前言 在集合的属性注入中,如果注入属性为普通类型(String.int) ...
最新文章
- python实现yolo目标检测_从零开始PyTorch项目:YOLO v3目标检测实现
- python可以从事什么工作-学Python能干什么工作?工作前景怎么样?
- 1024分辨率章子怡/郭富城《最爱》HD国语中字
- MySQL LIMIT:限制查询结果的记录条数
- Django框架(13.Django中的查询集)
- 【springboot】spring-boot-devtools 热部署 导致 mvn spring-boot:run 出现异常
- android退出app代码,Android应用退出代码各种方式
- 《Java编码指南:编写安全可靠程序的75条建议》—— 指南19:对细粒度的安全定义自定义安全权限...
- 软工视频(33~36)-用户界面设计
- Python(^^^^^小技巧^^^^^——不定期更新)
- Chronometer控件实现的Android计时器
- 【Chrome小技巧】Chrome浏览器如何实现下载速度加快?
- 异常排查_Python-日志模块.NoSectionError: No section: '*' 错误?
- 解除百度文库复制限制
- Linux学习笔记——CentOS
- Android Binder机制浅析
- 多频外差三维重建 投影仪非线性误差补偿
- Web前端技术课后作业
- 3种夸克有多少组合?
- matlab去除图片水印_初试 Matlab 之去除水印
热门文章
- 树莓派53/100 - Pico小车v4版本,蓝牙、陀螺仪之后,再加上OLED显示屏
- 信息制图设计师是做什么的
- pip使用镜像下载第三方包
- Python使用open函数的buffering设置文件缓冲
- 预告片场网(最新电影预告片)--希望能在今年春节后正式上线!
- (C#脚本)Unity中角色移动的几种实现方法,以及心得。(适合新手入门)
- 微信小程序使用canvas绘制海报并保存本地相册
- 错误429,请求过多:对价格进行限制后该怎么办?
- 怎样修复Macbook键盘无法正常工作或打字?
- 望尘科技通过港交所聆讯:坚持深耕“体育游戏”的收获者