zoukankan      html  css  js  c++  java
  • Spring中的IOC示例

    Spring中的IOC示例

    工程的大概内容是:

    一个人在中国时用中国话问候大家,在国外时用英语问候大家。

    其中,

    IHelloMessage是接口,用来定义输出问候信息

    public interface IHelloMessage {
      public String sayhello();
    }

     HelloWorld是接口的实现类,向用户输出  hello world  信息

    public class HelloWorld implements IHelloMessage {
    
      @Override
      public String sayhello() {
        // TODO Auto-generated method stub
        return "hello world";
      }
    
    }

    HelloChina 是接口的实现类,向用户输出 大家好  信息

    public class HelloChina implements IHelloMessage{
    
      @Override
      public String sayhello() {
        // TODO Auto-generated method stub
        return "大家好";
      }
    
    }

    Person是人物类,调用IHelloMessage接口,向用户输出问候信息

    public class Person {
      private IHelloMessage helloMessage;
    
      public IHelloMessage getHelloMessage() {
        return helloMessage;
      }
    
      public void setHelloMessage(IHelloMessage helloMessage) {
        this.helloMessage = helloMessage;
      }
      public String sayHello(){
        return helloMessage.sayhello();
      }
      
    }

    Main是程序的入口类,用于加载配置文件以及启动IOC容器,调用人物类,向用户输出问候信息

    public class Main {
    
      public static void main(String[] args) {
        //利用FileSystemResource读取配置文件
        Resource r = new FileSystemResource("helloMessage.xml");
        //利用XmlBeanFactory加载配置文件同时启动IOC容器
        BeanFactory f = new XmlBeanFactory(r);
        //接下来在IOC容器中获取Person类的实例
        Person person = (Person) f.getBean("person");
        String message = person.sayHello();
        System.out.println(message);
      }
    
    }

    配置文件helloMessage

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE beans PUBLIC "-//SPRING/DTD BEAN/EN"
    "http://www.springframework.org/dtd/spring-beans.dtd">
    <beans>
    <bean id="helloWorld" class="com.xiongda.spring.hello.HelloWorld"></bean>
    <bean id="helloChina" class="com.xiongda.spring.hello.HelloChina"></bean>
    <bean id="person" class="com.xiongda.spring.hello.Person">
    <property name="helloMessage" ref="helloWorld"/>
    </bean>
    </beans>

    可以看出原本的类之间是独立的,通过配置文件在他们之间建立了依赖,也就是说将控制权由原来的对象本身转移到了配置文件当中,也就是所谓的控制反转

  • 相关阅读:
    排序算法之希尔排序
    排序算法之直接插入排序
    PL/SQL之异常
    PL/SQL之包
    PL/SQL之存储过程和函数
    Oracle左连接、右连接、全外连接以及(+)号用法
    PL/SQL之存储过程和触发器实例
    PL/SQL之游标的使用
    Tag Tree
    目录:JAVA
  • 原文地址:https://www.cnblogs.com/xtuxiongda/p/9180858.html
Copyright © 2011-2022 走看看