• spring框架学习2:spring基本配置


    spring的核心工作:1.创建对象   2.维护对象之间的依赖关系

    举例:创建一个电脑E470对象,这个对象依赖两个类,显示器和CPU

    创建接口:

    package com.zs.entity;
    
    /**
     * 创建Cpu接口
     */
    public interface Cpu {
        /**
         * cpu有运算的方法
         */
        void calc();
    }
    View Code
    package com.zs.entity;
    
    /**
     * 创建显示器接口
     */
    public interface Display {
        /**
         * 显示器有显示的方法
         */
        void show();
    }
    View Code

    实现接口方法,显示器有两个实现类,一个lg显示器,一个三星显示器,Cpu有一个实现类,英特尔CPU。

    package com.zs.entity.impl;
    
    import com.zs.entity.Display;
    
    /**
     * lg显示器实现显示器接口
     */
    public class LgDisplay implements Display {
        @Override
        public void show() {
            System.out.println("lg显示器正在显示画面");
        }
    }
    View Code
    package com.zs.entity.impl;
    
    import com.zs.entity.Display;
    
    /**
     * 创建三星显示器类实现显示器接口
     */
    public class SumDisplay implements Display {
    
        @Override
        public void show() {
            System.out.println("三星显示器正在显示画面");
        }
    }
    View Code
    package com.zs.entity.impl;
    
    import com.zs.entity.Cpu;
    
    public class InterCpu implements Cpu {
        @Override
        public void calc() {
            System.out.println("英特尔显示器正在运算");
        }
    }
    View Code

    然后创建电脑E470对象:

    package com.zs.entity.impl;
    
    import com.zs.entity.Cpu;
    import com.zs.entity.Display;
    
    /**
     * 创建e470电脑,电脑有显示器和Cpu
     */
    public class E470 {
        private Display display;
        private Cpu cpu;
        /*电脑有自己的工作的方法*/
        public void work(){
            display.show();
            cpu.calc();
        }
        /*生成get和set方法*/
        public Display getDisplay() {
            return display;
        }
    
        public void setDisplay(Display display) {
            this.display = display;
        }
    
        public Cpu getCpu() {
            return cpu;
        }
    
        public void setCpu(Cpu cpu) {
            this.cpu = cpu;
        }
    
    }
    View Code

    在spring工厂中添加对象:

    <?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">
        <!--将对象交给spring管理-->
    
        <!--bean标签,使用该元素描述需要spring容器管理的对象
             id:配置类的唯一标识,id不可重复,获得对象时,根据id获得对象,不能使用特殊字符
             name:给被管理的对象起名字,可以重复,可以使用特殊字符
             class:被管理的对象的完整类名-->
        <bean id="lgDisplay" class="com.zs.entity.impl.LgDisplay"/>
    
        <bean id="interCpu" class="com.zs.entity.impl.InterCpu"/>
    
        <bean id="sumDisplay" class="com.zs.entity.impl.SumDisplay"/>
    
        <bean id="e470" class="com.zs.entity.impl.E470">
            <!--property:类的属性
                ref:是引用哪儿个对象,这里要写对象的id-->
            <property name="display" ref="lgDisplay"/>
            <property name="cpu" ref="interCpu"/>
        </bean>
    
    </beans>
    View Code
    BeanFactory是ApplicationContext的父接口,BeanFactory接口定义了一些spring工厂最底层的使用的方法,一
    般在spring的源码中我们使用BeanFactory,但是该类不建议程序员直接使用,建议程序员使用
    ApplicationContext接口,该接口对BeanFactory功能进行了一些扩展:
    1,提供spring的国际化支持
    2,提供了事物的处理方式
    3,可以加载多个主配置文件
    以后一般开发中使用ApplicationContext接口,但是接口不能直接使用,我们可以同
    ClassPathXmlApplicationContext类来实例化这个接口。我们也可以使用FileSystemXmlApplicationContext来实
    例化该接口。

    测试从spring工厂中获取对象:

    import com.zs.entity.impl.E470;
    import org.junit.Test;
    import org.springframework.context.support.ClassPathXmlApplicationContext;
    
    public class SpringTest {
        @Test
        public void test1() {
            ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
            E470 e470 = (E470) context.getBean("e470");
            e470.work();
        }
    }
    View Code

    结果如下:

  • 相关阅读:
    uni-app快速上手
    uni-app快速上手
    什么是uni-app?
    什么是uni-app?
    美颜小程序准备
    美颜小程序准备
    vue的基本使用
    vue的基本使用
    Web前端开发(高级)下册-目录
    Web前端开发(高级)下册-目录
  • 原文地址:https://www.cnblogs.com/Zs-book1/p/10995602.html
Copyright © 2020-2023  润新知