Spring简单依赖注入演示
来源:互联网 发布:审计 孟然 知乎 编辑:程序博客网 时间:2024/06/05 02:09
Spring的一大特点是利用配置的xml文件实现依赖注入。
所谓依赖注入是指把一个业务对象注入另一个业务对象,从而达到
对象间的松耦合。
下面我们来举个例子。
场景:现在有个磁盘输出的业务,客户端需要通过2个业务对象进行输出。
一个是通过Floppy(软盘),另一个是通过USB接口。
这样就需要2个业务类,但是如果不让客户端知道而实现简单的注入呢?
首先,由于有2种设备,软盘和USB,因此我们需要建立一个设备接口IDeviceWriter。
代码如下:
建立好设备接口后,我们便可以建立2个设备类,分别是软盘和USB来实现这个接口了。
软盘类代码如下:
USB类代码如下:
接下来,我们需要建立一个磁盘业务的业务JavaBean类,我们简称它为BusinessBean。
该Bean有一个成员用于存放设备-writer。
然后有get,set方法和一个核心的保存方法。
BusinessBean代码如下:
业务类完成之后,我们便可以在配置文件中进行配置依赖关系了。
(注:bean依赖关键字是ref)
配置文件businessFactoryConfig.xml代码如下:
在上面的配置文件中,我们注入了floppy bean,我们也可以注入usb bean。
最后,我们写一下客户端代码,如下:
运行一下,结果为:
储存至软盘…
所谓依赖注入是指把一个业务对象注入另一个业务对象,从而达到
对象间的松耦合。
下面我们来举个例子。
场景:现在有个磁盘输出的业务,客户端需要通过2个业务对象进行输出。
一个是通过Floppy(软盘),另一个是通过USB接口。
这样就需要2个业务类,但是如果不让客户端知道而实现简单的注入呢?
首先,由于有2种设备,软盘和USB,因此我们需要建立一个设备接口IDeviceWriter。
代码如下:
- package spring.basic.BusinessFactory;
- public interface IDeviceWriter {
- public void saveToDevice();
- }
建立好设备接口后,我们便可以建立2个设备类,分别是软盘和USB来实现这个接口了。
软盘类代码如下:
- package spring.basic.BusinessFactory;
- public class FloppyWriter implements IDeviceWriter {
- public void saveToDevice() {
- System.out.println("储存至软盘…");
- }
- }
USB类代码如下:
- package spring.basic.BusinessFactory;
- public class UsbDiskWriter implements IDeviceWriter {
- public void saveToDevice() {
- System.out.println("储存至移动硬盘…");
- }
- }
接下来,我们需要建立一个磁盘业务的业务JavaBean类,我们简称它为BusinessBean。
该Bean有一个成员用于存放设备-writer。
然后有get,set方法和一个核心的保存方法。
BusinessBean代码如下:
- package spring.basic.BusinessFactory;
- public class BusinessBean {
- private IDeviceWriter writer;
- public void setDeviceWriter(IDeviceWriter writer) {
- this.writer = writer;
- }
- public IDeviceWriter getDeviceWriter() {
- return writer;
- }
- public void save() {
- if (writer == null) {
- throw new RuntimeException("DeviceWriter needed...");
- }
- writer.saveToDevice();
- }
- }
业务类完成之后,我们便可以在配置文件中进行配置依赖关系了。
(注:bean依赖关键字是ref)
配置文件businessFactoryConfig.xml代码如下:
- <?xml version="1.0" encoding="UTF-8"?>
- <beans xmlns="http://www.springframework.org/schema/beans"
- 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-2.0.xsd">
- <bean id="floppy" class="spring.basic.BusinessFactory.FloppyWriter"/>
- <bean id="usb" class="spring.basic.BusinessFactory.UsbDiskWriter"/>
- <bean id="businessBean"
- class="spring.basic.BusinessFactory.BusinessBean">
- <property name="deviceWriter">
- <ref bean="floppy"/>
- </property>
- </bean>
- </beans>
在上面的配置文件中,我们注入了floppy bean,我们也可以注入usb bean。
最后,我们写一下客户端代码,如下:
- package spring.basic.BusinessFactory;
- import org.springframework.context.ApplicationContext;
- import org.springframework.context.support.ClassPathXmlApplicationContext;
- public class SpringDemo {
- public static void main(String[] args) {
- ApplicationContext context = new ClassPathXmlApplicationContext(
- "businessFactoryConfig.xml");
- BusinessBean business = (BusinessBean) context.getBean("businessBean");
- business.save();
- }
- }
运行一下,结果为:
储存至软盘…
阅读全文
0 0
- Spring简单依赖注入演示
- Spring依赖注入简单版
- Spring依赖注入简单例子
- Spring:注解版依赖注入+注入collection值演示
- 简单的Spring依赖注入例子~~
- 简单的Spring依赖注入例子~~
- Spring.net 依赖注入 简单例子
- Spring简单的依赖注入例子
- 简单的Spring依赖注入例子~~
- java简单模拟Spring的依赖注入
- spring依赖注入原理的简单模拟
- Spring 简单案例(依赖注入)_01
- Spring 简单案例(依赖注入)_02
- Spring依赖注入:注解注入
- spring 的依赖注入
- Spring依赖注入实践经验
- Spring的依赖注入
- Spring依赖注入
- python分割大文件(源码)
- QT开发之QSS样式表的加载
- 使用wireshark常用的过滤命令
- 【修真院“善良”系列之十五】给未来的pm学员的一封信
- 浅析.Net反射机制
- Spring简单依赖注入演示
- 设计模式(Design Pattern)
- 对象隐式转换,复制构造函数和重载等号运算符的区别
- less-作为函数使用的混合
- 集合浅解
- 学习笔记 集合
- JavaScript作用域
- 区块链:起源、原理及应用
- 研究一下对象的实例化过程发生了什么