依赖注入-setter方法注入


通过无参构造函数+setter方法注入。

一、编写CustomerDao接口

package com.yiidian.dao;
/*** * @author http://www.yiidian.com**/
public interface CustomerDao {public void save();
}

二、编写CustomerDaoImp实现类

package com.yiidian.dao.impl;import com.yiidian.dao.CustomerDao;
/*** @author http://www.yiidian.com**/
public class CustomerDaoImpl implements CustomerDao {@Overridepublic void save() {System.out.println("CustomerDaoImpl被成功注入!");}}

三、编写CustomerService接口

package com.yiidian.service;
/*** * @author http://www.yiidian.com**/
public interface CustomerService {public void save();
}

四、编写CustomerServiceImpl实现类

package com.yiidian.service.impl;import com.yiidian.dao.CustomerDao;
import com.yiidian.service.CustomerService;
/*** * @author http://www.yiidian.com**/
public class CustomerServiceImpl implements CustomerService {private CustomerDao customerDao;//关键在这里,提供CustomerDao作为参数的setter方法,待会在配置文件进行注入public void setCustomerDao(CustomerDao customerDao) {this.customerDao = customerDao;}@Overridepublic void save() {customerDao.save();}}

五、配置applicationContext.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:p="http://www.springframework.org/schema/p"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"><bean id="customerDao" class="com.yiidian.dao.impl.CustomerDaoImpl"></bean><bean id="customerService" class="com.yiidian.service.impl.CustomerServiceImpl"><!-- name:代表CustomerServiceImpl中的setter方法名称ref:代表引用另一个bean对象,即CustomerDaoImpl对象--><property name="customerDao" ref="customerDao"></property>  </bean></beans>

六、测试

package com.yiidian.test;import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;import com.yiidian.service.CustomerService;/*** @author http://www.yiidian.com* */
public class Demo1 {@Testpublic void test1() {ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");CustomerService customerService = (CustomerService)context.getBean("customerService");customerService.save();}}

七、运行结果

源码下载:http://pan.baidu.com/s/1kVDuwIF

Spring4.x(11)依赖注入-setter方法注入相关推荐

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

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

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

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

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

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

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

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

  5. 使用属性的setter方法注入

    使用属性的setter方法注入 将A类的一个Bean看作类B的一个属性,并类B通过setter方法实现Bean的实例化,即声明变量. 使用setter方法注入是Spring框架中最主流的注入方式,利用 ...

  6. Spring(2)bean注入--Set方法注入

    Spring(2)bean注入–Set方法注入 Set 方法注入 新建一个空的 maven项目. 导入依赖 <properties><project.build.sourceEnco ...

  7. Spring--依赖注入 or 方法注入 ?

    依赖注入 我们在 Spring - 循环依赖 中谈到 Spring 的两种依赖注入方式 构造器注入 属性注入(setter注入也归属于此) @Service public class HelloSer ...

  8. Spring Setter方法注入

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

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

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

最新文章

  1. 算法----- 给定一颗二叉树,找到二叉树上任意两个节点之间的距离(Java版本)
  2. phpcms ——模板标签详细使用说明
  3. linux 进程间通信 dbus-glib【实例】详解二(下) 消息和消息总线(ListActivatableNames和服务器的自动启动)(附代码)
  4. 【python】openstack管理小工具(增删查改,批量ping)
  5. vue e-charts按需引入
  6. AutoCAD.NET API 最新(2012)教程下载及在线视频教程DevTV
  7. windows修改时间服务器,在Windows中设置时间服务器 2012 R2
  8. 前端学习笔记--HTTP缓存
  9. php curl模拟https请求
  10. [Kaggle] Digit Recognizer 手写数字识别
  11. 零基础学python书籍-图书推荐:《零基础学Python(全彩版)》
  12. nlp基础—6.EM算法
  13. Crash Course经济学笔记
  14. 不为人知的网络编程(八):从数据传输层深度解密HTTP
  15. SaaS小程序搭建教程 (2022/4/12 更新)
  16. Safari浏览器兼容性问题
  17. Android Studio开发中的各种开源API
  18. 计算机无法连接苹果手机软件,iphone连不上itunes
  19. 概率论基础 - 5 - 马尔可夫不等式
  20. 关于微信开放平台配置-网站应用

热门文章

  1. 3dmax脚本_3DMax二种距离测量方法
  2. 【声学基础】概述——辐射
  3. Nginx基本数据结构之ngx_str_t
  4. ROS : 修改ROS源代码(overlaying package)
  5. Java高级开发工程师面试考纲
  6. Jenkins pipeline job 根据参数动态获取触发事件的分支
  7. mysql InnoDb存储引擎索引
  8. 什么是 Python 自省?
  9. 第二阶段冲刺 每日站立会议 1/4
  10. dede织梦调用顶级二级栏目及下三级栏目方法!