• 【小白日记】对Spring的初识和学习 简单的小事例建立 (3)


    2019/4/14 距离上一篇日记的纪录已经又过去了一周的时间…老样子,还是在常规学习之余 抽出部分时间用来自学Spring
    通过之前对Spring的了解 这周 打算通过一个简单的小事例来复习一下之前我所自学的内容


    小事例

    首先 这次要做的这个小程序的主要目的是用来 向用户发出一个简单的问好的功能 (当然也就是 入门标配的HelloWorld)但是与之不同的是的。这次我们要利用 Spring Ioc 的特性 来制作这个程序 使它在不同的需求下实现不同的问好方式。

    Step1 配置环境

    这里我用到的是Eclipse Java EE 的开发环境,当然了如果使用IDEA的话也是可以的。不过IDEA这个东西吧…emm并不免费,所以就会产生一些大家都知道的一些问题啦。所以我这边还是果断选择了Eclipse的开发平台。
    好嘞,现在安装完毕了
    看到那个熟悉的图标了吧 对了 点击它 (~~如果你还不闲烦的话还可以将它添加到快速启动 ~~ 91警告)
    在这里插入图片描述

    Step2 建立工程

    前几步过程较为简单就不过多叙述直接上图

    • 新建项目
      在这里插入图片描述
      在这里插入图片描述
    • 引入Spring framework 的jar包
      在这里插入图片描述
      新建lib文件夹
      在这里插入图片描述
      新建完毕之后将我们之前准备好的Spring的相关jar文件导入到lib文件夹下面(相关文件可以移步到Spring官网下载)
      在这里插入图片描述
      在这里插入图片描述
      导入到Bulid Path让工程可以识别并使用它 点击Add JARs 导入即可。
    需要建立java类文件之间的关系

    首先,这个小程序要实现的最终效果呢 是实现一个人在不同的处境进行不同的问好方式。当他在中国的时候,他会说 您好!
    当他客居他乡 深处国外时候,相应的他会用英语来问候。
    所以 接下来简述一下我们需要建立的java文件以及相互关系。

    • 首先 我们需要建立一个IHelloMessage.java文件 用来作为接口文件 在这个接口文件当中 需要建立一个方法(say hello)来输出问候信息
    • Next 我们需要创建两个实现类 HelloWorld.java和HelloChina.java 这两个文件是用来实现IHelloMessage中的sayHello方法
      其中HelloWorld输出英语字符串,而HelloChina则将输出中文字符串。
    • 其次 我们还需要建立一个Person.java 文件 用来调用IHelloMessagae接口 用来输出问候信息。 为了引用此方法我们还需要在Person类中生成一个IHelloMessage的属性
    • 当然最重要的我们还要建立一个Main的入口 用来读取 xml 配置文件和调用person类输出问候信息。
    • 最终 决定这个人到底是输出中文还是英文是归功于Xml的配置文件的 当xml文件当中 配置为中国 输出中文信息 配置为国外 输出英文信息。
    Step3 项目的实现

    好啦,前面巴拉巴拉了这么多终于到了 实现这一步了。

    • 建立interface类型IHelloMessage.java 并创建sayHello方法
    package com.sky.spring.study01;
    
    public interface IHelloMessage {
    	
    	public String sayHello();
    
    }
    
    
    • 建立HelloWord类 返回HelloWord信息(注意建立Class时需要在add处选择IHelloMessage接口)
    package com.sky.spring.study01;
    
    public class HelloWorld implements IHelloMessage {
    
    	@Override
    	public String sayHello() {
    		// TODO Auto-generated method stub
    		return "Hello World!";
    	}
    
    }
    
    
    • 同理 我们继续创建HelloChina类
    package com.sky.spring.study01;
    
    public class HelloChina implements IHelloMessage {
    
    	@Override
    	public String sayHello() {
    		// TODO Auto-generated method stub
    		return "大家好!";
    	}
    
    }
    
    
    • 创建Person类文件 将IHelloMessage作为其属性 为其创建Get Set方法( helloMessage右键 -> source -> Generate Getter and Setter )
    package com.sky.spring.study01;
    
    public class Person {
    	private IHelloMessage helloMessage;
    
    	public IHelloMessage getHelloMessage() {
    		return helloMessage;
    	}
    
    	public void setHelloMessage(IHelloMessage helloMessage) {
    		this.helloMessage = helloMessage;
    	}
    	public String sayHello() {
    		return this.helloMessage.sayHello();
    	}
    
    }
    
    
    • 创建Main主方法
    package com.sky.spring.study01;
    import org.springframework.beans.factory.BeanFactory;
    import org.springframework.beans.factory.xml.XmlBeanFactory;
    import org.springframework.core.io.FileSystemResource;
    import org.springframework.core.io.Resource;
    
    public class Main {
    
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		Resource r = new FileSystemResource("helloMessage.xml");
    		BeanFactory f = new XmlBeanFactory(r);
    		Person person =(Person)f.getBean("person");
    		String s = person.sayHello();
    		System.out.print("The person is currently saying:" +s);
    	}
    
    }
    
    
    • 创建XML配置问价
      在Src下新建helloMessage.xml文件
    <?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.sky.spring.study01.HelloWorld">
    	</bean>
    	<bean id = "helloChina" class= "com.sky.spring.study01.HelloChina">
    	</bean>
    	<bean id = "person" class = "com.sky.spring.study01.Person">
    		<property name="helloMessage" ref="helloChina">
    		</property>
    	</bean>
    </beans>
    
  • 相关阅读:
    throw关键字
    Android WebView 调试方法
    webpack的Hot Module Replacement运行机制
    如何使用Node.js编写命令工具——以vue-cli为例
    webpack3新特性简介
    node.js如何制作命令行工具(一)
    webpack务虚扫盲
    web worker 扫盲篇
    httpd配置ResponseHeader
    针对iPhone的pt、Android的dp、HTML的css像素与dpr、设计尺寸和物理像素的浅分析
  • 原文地址:https://www.cnblogs.com/WeiHaoLee/p/10823342.html
Copyright © 2020-2023  润新知