Spring学习(六)实例演示Spring的使用
2016-05-25 23:07
567 查看
本次我们要编写一个输出问候信息的小例子:
当一个人在中国的时候,使用中国话向大家问好。当他去国外旅游时就需要用英语向大家问好。
首先我们得了解创建一个基于Spring IOC的小程序的具体步骤如下:
1) 建立Spring工程
2) 编写Java文件
3) 编写配置文件
4) 运行示例工程
新建一个Spring工程可以参考我之前的 Spring学习(一)在IntelliJ IDEA上使用Maven创建Spring项目
接下来我们来分析下这个例子当中的java类之间的关系:
这个项目可以简单的理解为:
一个人,在中国时用中国话问候大家;当去国外旅游的时候,用英语问候大家
人的具体位置,是由Spring的配置环境来决定的:
当配置为中国时,则问候“大家好!”
当配置为国外时,则问候“Hello everybody!”
在这里,我们在工程中逐个建立Java文件:
IHelloMessage:一个接口,用于定义输出问候信息
Main:程序的入口类,用于加载配置文件以及启动IOC容器,调用人物类,向用户输出问候信息
注:Spring3.1之后已经废弃XmlBeanFactory,替换方式如下所示
在这里我们为每一个javaBean都声明了他的名称和具体类。在Person类中,因为有一个IHelloMessage接口的对象声明,所以得给Person类的bean中声明一个属性Property,name为声明的接口对象名称,ref为接口的具体实现类,在本示例中HelloWorld和HelloChina都属于接口的实现类,则可以根据更改ref的值来实现具体使用那一个实现类。
编译并运行示例工程,在控制台查看输出信息,验证程序运行是否正常:
通过配置文件,来控制人的输出信息
当人在国内时,是否输出了“大家好!”的信息
当人在国外时,是否输出了“Hello everybody!”的信息
总结:
通过这个简单的小示例,使我认识到了Spring框架的冰山一角,正所谓“管中窥豹,可见一斑”,由此也对于Spring的开发框架有了一个大致的了解。认识了其利用配置文件来实现IoC的具体实现,充分体会到了利用配置文件控制系统的快速与便捷性。
当一个人在中国的时候,使用中国话向大家问好。当他去国外旅游时就需要用英语向大家问好。
首先我们得了解创建一个基于Spring IOC的小程序的具体步骤如下:
1) 建立Spring工程
2) 编写Java文件
3) 编写配置文件
4) 运行示例工程
新建一个Spring工程可以参考我之前的 Spring学习(一)在IntelliJ IDEA上使用Maven创建Spring项目
接下来我们来分析下这个例子当中的java类之间的关系:
这个项目可以简单的理解为:
一个人,在中国时用中国话问候大家;当去国外旅游的时候,用英语问候大家
人的具体位置,是由Spring的配置环境来决定的:
当配置为中国时,则问候“大家好!”
当配置为国外时,则问候“Hello everybody!”
在这里,我们在工程中逐个建立Java文件:
IHelloMessage:一个接口,用于定义输出问候信息
public interface IHelloMessage { public String sayHello(); }HelloWorld:接口的实现类,向用户输出“Hello everybody”信息
public class HelloWorld implements IHelloMessage{ public String sayHello() { return "Hello Everybody"; } }HelloChina:接口的实现类,向用户输出“大家好!”信息
public class HelloChina implements IHelloMessage{ public String sayHello() { return "大家好!"; } }Person:一个人物类,调用IHelloMessage接口,向用户输出问候信息
public class Person { //因为Person类要引用IHelloMessage接口,所以将IHelloMessage作为类的一个属性 private IHelloMessage iHelloMessage; /** * 自动生成get方法 * @return */ public IHelloMessage getiHelloMessage() { return iHelloMessage; } /** * 自动生成set方法 * @param iHelloMessage */ public void setiHelloMessage(IHelloMessage iHelloMessage) { this.iHelloMessage = iHelloMessage; } /** * person类使用sayHello方法来调用借口的sayHello方法 * @return */ public String sayHello(){ return this.iHelloMessage.sayHello(); } }
Main:程序的入口类,用于加载配置文件以及启动IOC容器,调用人物类,向用户输出问候信息
注:Spring3.1之后已经废弃XmlBeanFactory,替换方式如下所示
public class Main { public static void main(String[] args){ //使用FileSystemResource来读取配置文件 Resource r=new FileSystemResource("helloMessage.xml"); //使用XmlBeanFactory加载配置信息,启动IOC容器 //Spring3.1之后已经废弃XmlBeanFactory //BeanFactory b=new XmlBeanFactory(r); DefaultListableBeanFactory factory=new DefaultListableBeanFactory(); XmlBeanDefinitionReader reader=new XmlBeanDefinitionReader(factory); reader.loadBeanDefinitions(r); //从IOC容器中获取Person类的实例 //Person person=(Person)b.getBean("Person"); Person person= (Person) factory.getBean("Person"); //使用person类示例来输出问候信息 String s=person.sayHello(); System.out.println("The Person is currently saying "+s); } }接下来,为示例代码建立配置文件helloMessage.xml文件
<?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="HelloChina" class="cn.lovepi.chapter01.HelloChina"> </bean> <bean id="HelloWorld" class="cn.lovepi.chapter01.HelloWorld"> </bean> <bean id="Person" class="cn.lovepi.chapter01.Person"> <!--bean中属性配置,属性即为类中所声明的接口变量。给其添加了一个引用--> <property name="iHelloMessage" ref="HelloWorld"> </property> </bean> </beans>
在这里我们为每一个javaBean都声明了他的名称和具体类。在Person类中,因为有一个IHelloMessage接口的对象声明,所以得给Person类的bean中声明一个属性Property,name为声明的接口对象名称,ref为接口的具体实现类,在本示例中HelloWorld和HelloChina都属于接口的实现类,则可以根据更改ref的值来实现具体使用那一个实现类。
编译并运行示例工程,在控制台查看输出信息,验证程序运行是否正常:
通过配置文件,来控制人的输出信息
当人在国内时,是否输出了“大家好!”的信息
当人在国外时,是否输出了“Hello everybody!”的信息
总结:
通过这个简单的小示例,使我认识到了Spring框架的冰山一角,正所谓“管中窥豹,可见一斑”,由此也对于Spring的开发框架有了一个大致的了解。认识了其利用配置文件来实现IoC的具体实现,充分体会到了利用配置文件控制系统的快速与便捷性。
相关文章推荐
- Oauth2.0 用Spring-security-oauth2
- java String
- 为什么要使用MVC模式,MVC模式的优势有哪些?请写出你熟悉的MVC轻量级框架名称。
- java中数据类型转换
- SpringMVC学习--入门程序
- Spring Security 的login(登录页)重构
- Java之------socket网页蜘蛛(多线程版)爬邮箱
- 《Spring设计思想》AOP实现原理(基于JDK和基于CGLIB)
- Rxjava Subject分析
- 《Spring设计思想》AOP设计基本原理
- java 移动文件到其他文件夹(move)
- JAVA中的Random()函数
- Java设计模式(四):原型模式Prototype
- Java 内部类访问格式
- error和exception有什么区别?
- java的primitive主数据类型和引用
- 异常整理之:java.lang.NoClassDefFoundError:org/hamcrest/SelfDescribing
- struts2的一点知识(引入别人的项目,path问题,package的名字不能一样哦 )
- 是不是有经验的JavaEE开发者,看你json玩的6不6(下)
- struts2复制项目的时候需要注意的