zoukankan      html  css  js  c++  java
  • IOC(五)

    如果不使用Spring, 当我们在一个类中要应用另一个类中的方法时, 需要在前类中创建后类的对象后再使用, 如下例:

    我们要在 Animal 类中调用 Mammal 接口中的方法, 需要以下操作:

    1. Mammal接口:

    public interface Mammal {
    
        public void mammaltalk();
    }

    2. Dog类:

    public class Dog implements Mammal{
    
        public void mammaltalk(){
    
            System.out.println("dog talks woof!");
        }
    }

    3. Animal类:

    public class Animal {
    
        public void animaltalk(){
            System.out.println("animal talks XXXXXXXXXXXXX");
    
            //原始方式: 需要先创建dog实现类的对象再调用其方法
            Mammal dog = new Dog();
            dog.mammaltalk();
        }
    }

    4. 测试:

    而当我们使用Spring时, 要实现同样的需求, 需要相应地配置 xml文件, 具体方式如下:

    1. Mammal接口和Dog实现类不变, Animal类改写如下: (设置对象属性, 以便通过Spring以set注入的方式注入属性)

    package com.ryan.spring5.quoteOutBean;
    
    public class Animal {
    
        private Mammal dog;
    
        public void setDog(Mammal dog) {
            this.dog = dog;
        }
    
        public void animaltalk(){
            System.out.println("animal talks XXXXXXXXXXXXX");
            dog.mammaltalk();
    
    //        //原始方式: 需要先创建dog对象再调用其方法
    //        Mammal dog = new Dog();
    //        dog.mammaltalk();
        }
    }

    2. xml文件配置: (对象属性的值指定时要用ref, 将创建的dog对象赋值给test的dog变量)

    <?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 id="dog" class="com.ryan.spring5.quoteOutBean.Dog"></bean>
        <bean id="test" class="com.ryan.spring5.quoteOutBean.Animal">
            <property name="dog" ref="dog"></property>
        </bean>
    </beans>

    3. 测试:

    public class Test {
    
        public static void main(String[] args) {
    //        Animal animal = new Animal();
    //        animal.animaltalk();
    
            ApplicationContext context = new FileSystemXmlApplicationContext("src\com\ryan\spring5\quoteOutBean\bean.xml");
            Animal animal = context.getBean("test", Animal.class);
    
            animal.animaltalk();
        }
    }

  • 相关阅读:
    CentOS VPS
    Make 命令教程
    Nginx 学习
    字体对齐问题
    postman curl
    linux命令
    服务器
    操作系统
    nginx-1.15遇到无法加载php文件报404的问题
    thinkphp6.0框架下载与安装
  • 原文地址:https://www.cnblogs.com/Ryan368/p/13879173.html
Copyright © 2011-2022 走看看