码迷,mamicode.com
首页 > 编程语言 > 详细

初识Spring及打印机案例

时间:2019-10-24 15:17:20      阅读:90      评论:0      收藏:0      [点我收藏+]

标签:应用   方便   spring框架   http   oca   颜色   性能   设计   end   

Spring框架

概述:Spring 是最受欢迎的企业级 Java 应用程序开发框架,数以百万的来自世界各地的开发人员使用 Spring 框架来创建性能好、易于测试、可重用的代码。

Spring 是轻量级的框架,其基础版本只有 2 MB 左右的大小。

一:IOC(Inversion of Control)

即“控制反转”,不是什么技术,而是一种设计思想。在Java开发中,Ioc意味着将你设计好的对象交给容器控制,而不是传统的在你的对象内部直接控制。

在传统的Java项目中,是通过一个类new另一个类的对象,将两个类进行关联,这样的话是程序主动去创建依赖对象,这样的话会导致类与类之间的高耦合,难于测式。

而IOC是把创建和查找依赖对象的控制权交给了容器,由容器进行注入组合对象,由这个容器来管理对象的生命周期和对象之间的关联关系,这样的话不但实现了对象之间的关联关系,所以对象与对象之间是 松散耦合,这样也方便测试,利于功能复用,更重要的是使得程序的整个体系结构变得非常灵活。

二:DI(Dependency Injection)

即“依赖注入”:IOC和DI在本质上来说是同一种东西,只不过IOC是一种设计理论,而DI则是一种实现。

组件之间依赖关系由容器在运行期决定,形象的说,即由容器动态的将某个依赖关系注入到组件之中。依赖注入的目的并非为软件系统带来更多功能,而是为了提升组件重用的频率,并为系统搭建一个灵活、可扩展的平台。通过依赖注入机制,我们只需要通过简单的配置,而无需任何代码就可指定目标需要的资源,完成自身的业务逻辑,而不需要关心具体的资源来自何处,由谁实现。

IoC的一个重点是在系统运行中,动态的向某个对象提供它所需要的其他对象。这一点是通过DI(Dependency Injection,依赖注入)来实现的

三、Spring使用初始案例

  1、先在pom.xml文件中导入Spring依赖

    技术图片

  2、创建项目实体类(一个类都是一个Bean)

    StudentBean实体类

      技术图片

  3、创建resources文件夹并创建applicationContext.xml文件

    技术图片

    applicationContext.xml文件内容如下

    技术图片

  4、Test测试类

    技术图片

  5、运行结果如下

    技术图片

四、Spring域属性案例

  1、在上个案例的基础上添加一个实体类Techer类

    技术图片

  2、在StudentBean类中添加Techer对象

    技术图片

  3、在applicationContext.xml中配置

    技术图片

 

  4、Test测试类

    技术图片

  5、运行结果如下

    技术图片

五、打印机案例

  1、创建Ink墨盒接口并定义获取墨盒颜色的方法

package com.spring.Ink;

/**
 * Ink墨盒接口
 */
public interface Ink {
    //获取墨盒颜色
    public String getInk();
}

  2、分别创建彩色墨盒(ColorInk)和黑白墨盒(GrayInk)

package com.spring.Ink;

import com.spring.Ink.Ink;

public class ColorInk implements Ink {
    @Override
    public String getInk() {
        return "彩色";
    }
}

 

package com.spring.Ink;

import com.spring.Ink.Ink;

public class GrayInk implements Ink {
    @Override
    public String getInk() {
        return "黑白色";
    }
}

   3、创建Paper纸张接口并定义获取纸张大小的方法

package com.spring.paper;

public interface Paper {
    //获取纸张大小
    public String getPaper();
}

  4、分别创建A4(A4Paper)和B5(B5Paper)类

package com.spring.paper;

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

 

package com.spring.paper;

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

  5、创建打印机类(Printer)

package com.spring.printer;

import com.spring.Ink.Ink;
import com.spring.paper.Paper;

/**
 * 打印机类
 */
public class Printer {
    //纸张对象
    private Paper paper;

    //墨盒对象
    private Ink ink;

    //打印的方法
    public void print(){
        System.out.println("你正在使用"+paper.getPaper()+"纸张和"+ink.getInk()+"墨盒打印信息!");
    }

    public Paper getPaper() {
        return paper;
    }

    public void setPaper(Paper paper) {
        this.paper = paper;
    }

    public Ink getInk() {
        return ink;
    }

    public void setInk(Ink ink) {
        this.ink = ink;
    }
}

  6、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">
   <!--注入彩色墨盒   Bean的注入都是实现类-->
    <bean id="colorink" class="com.spring.Ink.ColorInk"></bean>
    <bean id="grayInk" class="com.spring.Ink.GrayInk"></bean>

    <!--注入纸张  Bean的注入都是实现类-->
    <bean id="a4Paper" class="com.spring.paper.A4Paper"></bean>
    <bean id="b5Paper" class="com.spring.paper.B5Paper"></bean>

    <!--打印机类  将纸张和墨盒组合起来-->
    <bean id="printer" class="com.spring.printer.Printer">
        <property name="ink" ref="colorink"></property>
        <property name="paper" ref="a4Paper"></property>
    </bean>
</beans>

  7、Test测试类

package com.spring.test;

import com.spring.printer.Printer;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class PrinterText {
    public static void main(String[] args) {
        ApplicationContext ctx=new ClassPathXmlApplicationContext("applicationContext.xml");
        Printer printer =(Printer) ctx.getBean("printer");

        printer.print();
    }
}

  8、运行结果如下

    技术图片

 

初识Spring及打印机案例

标签:应用   方便   spring框架   http   oca   颜色   性能   设计   end   

原文地址:https://www.cnblogs.com/tinghao/p/11732218.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!