zoukankan      html  css  js  c++  java
  • Spring---基于Spring IOC的小程序

    实现的功能以及各文件间的关系

    IHelloMessage:一个接口,用于定义输出问候信息。

    HelloWorld、HelloChina:接口的实现类。在这里表示人在不同的地方

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

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

    IHelloMessage

    public interface IhelloMessage {
    
        public String sayHello();
        public String say();
    
    }

    HelloWorld、HelloChina

    public class HelloWord implements IhelloMessage {
    
        @Override
        public String sayHello() {
            // TODO Auto-generated method stub
            return "Hello World";
        }
    
        @Override
        public String say() {
            // TODO Auto-generated method stub
            return "ceshi";
        }
    
    }

    Person

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

    Main

    public class Main {
    
        public static void main(String[] args) {
            // 读取配置文件
            Resource resource = new FileSystemResource("helloMessage.xml");
            // 加载并启动IOC容器
            BeanFactory factory = new XmlBeanFactory(resource);
            // 从容器中获取实例
            Person person = (Person) factory.getBean("person");
            String str = person.sayHello();
            System.out.println(str);
        }
    
    }

    spring3.1以上的版本中XmlBeanFactory已过时,有两种解决方案

    1.将XmlBeanFactory替换成DefaultListableBeanFactory和XmlBeanDefinitionReader,代码如下Main类所写

    public class Main {
    
        public static void main(String[] args) {
            // 读取配置文件
            Resource resource = new FileSystemResource("helloMessage.xml");
            // 构造工厂
            DefaultListableBeanFactory factory= new DefaultListableBeanFactory ();
            // 通过构造工厂得到加载并启动IOC容器
            XmlBeanDefinitionReader reader = new XmlBeanDefinitionReader(factory);
            // 将读取到的配置文件加载到容器中
            reader.loadBeanDefinitions(resource);
            // 从容器中获取实例
            Person person = (Person) factory.getBean("person");
            String str = person.sayHello();
            System.out.println(str);
        }
    
    }

     2.使用其它几种方式加载配置文件。详见Spring---加载配置文件的几种方法(org.springframework.beans.factory.BeanDefinitionStoreException)

    配置文件xml

    Java bean

    每个bean对应一个java文件,当这个类文件配置到spring容器当中后,就变成了一个一个小豆子,而每个小豆子都拥有自己独立的功能。在运行spring工程之前,我们需要做的有两件事情。第一,将这些java类以java bean的形式注册到spring容器中。第二,通过配置文件来配置java bean之间的依赖关系。各个单独的类(组件)只需要关心自己的核心业务逻辑,而它们之间的依赖关系,则交由spring容器来配置和管理,这就是控制反转,而相对于类(组件),我们则可以称为依赖注入。以下是配置文件的示例代码

    <?xml version="1.0" encoding="UTF-8"?>
    <!-- 定义使用哪种规范进行解析配置文件 -->
    <!DOCTYPE beans PUBLIC "-//SPRING/DTD BEAN/EN" 
    "http://www.springframework.org/dtd/spring-beans.dtd">
    <beans>
        <!-- bean:定义java bean -->
        <bean id = "helloWorld" class = "com.hudongwu.spring.chapter01.HelloWord"></bean>
        <bean id = "helloChina" class = "com.hudongwu.spring.chapter01.HelloChina"></bean>
        <bean id = "person" class = "com.hudongwu.spring.chapter01.Person">
            <!-- 与其它java bean建立依赖关系 -->
            <property name="helloMessage" ref="helloWorld"></property>
        </bean>
    </beans>
  • 相关阅读:
    Why Choose Jetty?
    Jetty 的工作原理以及与 Tomcat 的比较
    Tomcat设计模式
    Servlet 工作原理解析
    Tomcat 系统架构
    spring boot 打包方式 spring boot 整合mybaits REST services
    wireshark udp 序列号 User Datagram Protocol UDP
    Maven 的聚合(多模块)和 Parent 继承
    缓存策略 半自动化就是mybaitis只支持数据库查出的数据映射到pojo类上,而实体到数据库的映射需要自己编写sql语句实现,相较于hibernate这种完全自动化的框架我更喜欢mybatis
    Mybatis解决sql中like通配符模糊匹配 构造方法覆盖 mybits 增删改
  • 原文地址:https://www.cnblogs.com/xiaobaizhiqian/p/7746340.html
Copyright © 2011-2022 走看看