1.导包

<!--beans-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>4.2.3.RELEASE</version>
</dependency>
<!--context-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>4.2.2.RELEASE</version>
</dependency>
2.创建类和接口

2.1 颜色

2.1.1ColorInk 类中

public class ColorInk implements Ink {

    public String getColor() {
return "红";
}
}

2.1.2 GrayInk 类中

public class GrayInk implements Ink {

    public String getColor() {
return "白";
}
}

2.1.3 Ink 接口中

public interface Ink {
//获取颜色的方法
public String getColor();
}

2.2 纸张

2.2.1 A4Paper 类中

public class A4Paper implements Paper {
public String getPaper() {
return "A4纸";
}
}

2.2.2 B5Paper 类中

public class B5Paper implements Paper {
public String getPaper() {
return "B5纸";
}
}

2.2.3 Paper接口中

public interface Paper {
public String getPaper();
}

2.3 Printer

public class Printer {

    private Ink ink;

    private Paper paper;

    public void print(){
System.out.println("用 "+ink.getColor()+" 颜色的墨盒在 "+paper.getPaper()+" 上打印出来 老原你敢下课吗???");
}
public Ink getInk() {
return ink;
} public void setInk(Ink ink) {
this.ink = ink;
} public Paper getPaper() {
return paper;
} public void setPaper(Paper paper) {
this.paper = paper;
}
}

3.applicationContext.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.xsd <!--IOC-->
<bean id="HappyService" class="cn.bdqn.service.HappyService">
<!--DI依赖注入-->
<property name="info" value="Spring"></property>
</bean> <!--打印机-->
<bean id="colorInk" class="cn.bdqn.printer.ink.ColorInk"></bean>
<bean id="grayInk" class="cn.bdqn.printer.ink.GrayInk"></bean> <bean id="b5Paper" class="cn.bdqn.printer.paper.B5Paper"></bean>
<bean id="a4Paper" class="cn.bdqn.printer.paper.A4Paper"></bean> <bean id="pinter" class="cn.bdqn.printer.print.Printer">
<property name="ink" ref="colorInk"></property>
<property name="paper" ref="a4Paper"></property>
</bean>
</beans>

4.测试

@Test
//打印机
public void test02(){
ApplicationContext ctx=new ClassPathXmlApplicationContext("applicationContext.xml");
Printer pp= (Printer)ctx.getBean("pinter");
pp.print();
}
												

Spring-打印机案例的更多相关文章

  1. spring原理案例-基本项目搭建 01 spring framework 下载 官网下载spring jar包

    下载spring http://spring.io/ 最重要是在特征下面的这段话,需要注意: All avaible features and modules are described in the ...

  2. spring原理案例-基本项目搭建 02 spring jar包详解 spring jar包的用途

    Spring4 Jar包详解 SpringJava Spring AOP: Spring的面向切面编程,提供AOP(面向切面编程)的实现 Spring Aspects: Spring提供的对Aspec ...

  3. spring原理案例-基本项目搭建 03 创建工程运行测试 spring ioc原理实例示例

    下面开始项目的搭建 使用 Java EE - Eclipse 新建一 Dynamic Web Project Target Runtime 选 Apache Tomcat 7.0(不要选 Apache ...

  4. spring入门--spring入门案例

    spring是一个框架,这个框架可以干很多很多的事情.感觉特别吊.但是,对于初学者来说,很难理解spring到底是干什么的.我刚开始的时候也不懂,后来就跟着敲,在后来虽然懂了,但是依然说不明白它到底是 ...

  5. Spring入门案例 idea创建Spring项目

    spring入门案例 idea创建spring项目 Spring介绍 Spring概述 Spring是一个开源框架,Spring是2003年兴起的轻量级java开发框架,由Rod Johnson 在其 ...

  6. Spring(二)--Spring入门案例

    Spring入门案例 1.需要的实体类 2.需要的接口和实现类 3.需要的service和实现类 /** * service层的作用 * 在不改变dao层代码的前提下,增加业务逻辑操作 */ publ ...

  7. Spring升级案例之IOC介绍和依赖注入

    Spring升级案例之IOC介绍和依赖注入 一.IOC的概念和作用 1.什么是IOC 控制反转(Inversion of Control, IoC)是一种设计思想,在Java中就是将设计好的对象交给容 ...

  8. Spring进阶案例之注解和IoC案例

    Spring进阶案例之注解和IoC案例 一.常见的注解分类及其作用 从此前的基于xml的IoC开发案例和依赖注入案例中,我们可以将xml配置归纳为: <bean id="" ...

  9. Spring Security 案例实现和执行流程剖析

    Spring Security Spring Security 是 Spring 社区的一个顶级项目,也是 Spring Boot 官方推荐使用的安全框架.除了常规的认证(Authentication ...

  10. Spring入门案例

    一.Spring基本介绍 1.什么是Spring Spring 是分层的 Java SE/EE 应用 full-stack 轻量级开源框架,以 IoC(Inverse Of Control: 反转控制 ...

随机推荐

  1. 「LuoguP1402」 酒店之王(最大流

    题目描述 XX酒店的老板想成为酒店之王,本着这种希望,第一步要将酒店变得人性化.由于很多来住店的旅客有自己喜好的房间色调.阳光等,也有自己所爱的菜,但是该酒店只有p间房间,一天只有固定的q道不同的菜. ...

  2. css 内容超出宽度自动换行

    1. word-break:break-all;只对英文起作用,以字母作为换行依据2. word-wrap:break-word; 只对英文起作用,以单词作为换行依据 PS:要设定宽度!

  3. JNI之JAVA调用C++接口

    1.JNI定义(来自百度百科) JNI是Java Native Interface的缩写,中文为JAVA本地调用.从Java1.1开始,Java Native Interface(JNI)标准成为ja ...

  4. 让应用程序支持emoji字符

    自iPhone从iOS 5在输入法中开始支持emoji以来,这些表情符号迅速风靡世界.但是很多Web网站竟然还不!支!持!!! 那怎么才能支持emoji呢?其实代码一行都不用改,因为emoji符号实际 ...

  5. PYTHON 异常处理 一 ASSERT

    assert语句,如果没记错,这个东西在C或者C++里面也有的.属于短小的断言.下面的是来自python help document的说明: Assert statements are a conve ...

  6. android自动化测试之uiautomator

    1.通过monkeyrunner.bat   monkey_record.py启动MonkeyRecorder进行拿到各个控件的坐标(要连上手机才可以启动) 2.也可以通过uiautomatorvie ...

  7. 2.3-2.6 HBase java API

    一.get .put.delete.scan 1.代码 package com.beifeng.senior.hadoop.hbase; import org.apache.hadoop.conf.C ...

  8. 技术胖Flutter第四季-22页面跳转并返回数据

    视频地址: https://www.bilibili.com/video/av35800108/?p=23 博客地址: https://jspang.com/post/flutter4.html#to ...

  9. 技术胖Flutter第四季-24Flutter的打包

    视频地址: https://www.bilibili.com/video/av35800108/?p=25 文章地址: https://jspang.com/post/flutter4.html#to ...

  10. 13.详解oauth2授权码流程

    13.详解oauth2授权码流程 把登陆系统单独独立出来,可以给自己写的微服务用,也可以给第三方的系统调用我们的服务 显式的和隐式的,两种方式,