通过一个简单的示例来初步理解Spring框架

1、创建java工程,导入相应Spring包,放在lib文件夹中

2、接口  IHelloMessage

 package com.jike.spring.chapter01;

 public interface IHelloMessage {

     //接口中的一个抽象方法,用于向大家输出问候信息
public String sayHello(); }

3、java类 HelloChina.java,用于输出“中国话”

 package com.jike.spring.chapter01;

 public class HelloChina implements IHelloMessage {

     //继承和实现了IHelloMessage接口中的sayHello方法,
//向大家输出了Hello China的信息
@Override
public String sayHello() { return "Hello China!";
} }

4、java类 HelloWorld.java,用于输出“世界话”

 package com.jike.spring.chapter01;

 public class HelloWorld implements IHelloMessage{

     //继承和实现了IHelloMessage接口中的sayHello方法,
//向大家输出了Hello China的信息
@Override
public String sayHello() {
return "Hello World!";
} }

5、Person类

 package com.jike.spring.chapter01;

 public class Person {

     //将IHelloMessage作为一个属性,用于向大家输出问候信息
private IHelloMessage helloMessage; public IHelloMessage getHelloMessage() {
return helloMessage;
} public void setHelloMessage(IHelloMessage helloMessage) {
this.helloMessage = helloMessage;
} //用于调用IHelloMessage接口向用户输出问候信息,
//具体的问候信息,由Spring的配置文件来分配和决定
//1.当配置文件中分配给person的是HelloWorld的实体时,则输出“Hello World!”的信息;
//2.当配置文件中分配给person的是HelloChina的实体时,则输出“Hello China!”的信息;
public String sayHello() {
return this.helloMessage.sayHello();
}
}

6、Main主类

 package com.jike.spring.chapter01;

 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) { //利用FileSystemResource读取配置文件
Resource r = new FileSystemResource("helloMessage.xml");
//利用XmlBeanFactory来加载配置文件,启动IOC容器
BeanFactory f = new XmlBeanFactory(r);
//从IOC容器中获取Person类的实例
Person person = (Person) f.getBean("person");
//person实例向大家输出问候信息
String s = person.sayHello();
//在系统控制台中打印问候信息,由于在这里配置文件中配置是HelloWorld的实例,
//所以,在这里打印的是字符串:HelloWorld
System.out.println("The Person is currently saying: "+s);
} }

7、配置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.jike.spring.chapter01.HelloWorld"></bean>
<bean id="helloChina" class="com.jike.spring.chapter01.HelloChina"></bean>
<bean id="person" class="com.jike.spring.chapter01.Person">
<property name="helloMessage" ref="helloChina"/>
</bean>
</beans>

运行结果:

将配置文件改为:

<?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.jike.spring.chapter01.HelloWorld"></bean>
<bean id="helloChina" class="com.jike.spring.chapter01.HelloChina"></bean>
<bean id="person" class="com.jike.spring.chapter01.Person">
<property name="helloMessage" ref="helloWorld"/>
</bean>
</beans>

结果为:

Spring 小示例的更多相关文章

  1. ReactNative新手学习之路06滚动更新ListView数据的小示例

    本节带领大家学习使用ListView 做一个常用的滚动更新数据示例: 知识点: initialListSize={200} 第一次加载多少数据行 onEndReached={this.onEndRea ...

  2. 基于注解的Spring AOP示例

    基于注解的Spring AOP示例 目录 在XML配置文件中开启 @AspectJ 支持 声明切面及切入点 声明通知 测试 结语 在XML配置文件中开启 @AspectJ 支持 要使用Spring的A ...

  3. MVC客户端验证的小示例

    MVC客户端验证的小示例 配置客户端验证的可用性: <configuration> <appSettings>  <add key="ClientValidat ...

  4. 搭建Spring开发环境并编写第一个Spring小程序

    搭建Spring开发环境并编写第一个Spring小程序 2015-05-27      0个评论    来源:茕夜   收藏    我要投稿 一.前面,我写了一篇Spring框架的基础知识文章,里面没 ...

  5. 【.Net】Socket小示例

    引言 项目中用到了Socket,这里做个控制台小示例记录一下. Client 客户端的Receive用了异步方法,保持长连接,可以随时发送消息和响应服务端的消息,如下 static string Cl ...

  6. Struts2+Hibernate+Spring 整合示例

    转自:https://blog.csdn.net/tkd03072010/article/details/7468769 Struts2+Hibernate+Spring 整合示例 Spring整合S ...

  7. CentOS7 安装 RocketMQ 实践和小示例

    CentOS7 安装 RocketMQ 实践和小示例 1.通过 SSH 工具(比如 XShell)连接到 CentOS7 服务器上: 2.进入到 /usr/local 目录中: cd /usr/loc ...

  8. Highcharts入门小示例

    一.创建条形图 1.创建div容器 <div id="container" style="min-width:800px;height:400px"> ...

  9. spring小例子-springMVC+mybits整合的小例子

    这段时间没更博,找房去了...   吐槽一下,自如太坑了...承诺的三年不涨房租,结果今年一看北京房租都在涨也跟着涨了... 而且自如太贵了,租不起了.. 突然有点理解女生找对象要房了..   搬家太 ...

随机推荐

  1. iOS个别界面旋转问题

    /*是否应该自动旋转屏幕**/ - (BOOL)shouldAutorotate{ return YES; } /*是否支持屏幕旋转并指明旋转方向**/ - (UIInterfaceOrientati ...

  2. [置顶] Win8.1慎用360优化,可能导致安装驱动出现数据无效的问题。附解决方法

    2013年9月30日,更新说明: 不知道是不是我禁用了其他驱动造成 今天开机后连接手机,我的电脑里没出现MTP设备 于是打开设备管理器,发现MTP,也就是我的XPERIA U出现了感叹号图标 右键更新 ...

  3. Comprehensive learning path – Data Science in Python深入学习路径-使用python数据中学习

    http://blog.csdn.net/pipisorry/article/details/44245575 关于怎么学习python,并将python用于数据科学.数据分析.机器学习中的一篇非常好 ...

  4. Nested Class Templates

      Templates can be defined within classes or class templates, in which case they are referred to as ...

  5. Java 之文件目录操作

    1.判断文件是否存在 File file = new File("d:\\study\\temp\\test.java"); boolean bl = file.exists(); ...

  6. error BC31019 无法写入输出文件 未指定错误

    今天获取项目最后版本后,编译突然出现错误 error BC31019 无法写入输出文件 "xxx目录" 未指定错误 试着调整当前用户对这个文件的读写权限等各种方法,都未能解决该问题 ...

  7. BOM操作写法实例

    浏览器相关信息 // 浏览器信息 navigator.userAgent // Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/ ...

  8. NHibernate——基本映射(5)

    一.映射定义概括 1.1 映射定义(Mapping declaration) 对象和关系数据库之间的映射是用一个XML文档(XML document)来定义的.这个映射文档被设计为易读的,并且可以手工 ...

  9. .NET中使用GridView控件输入数据时出现“ Index was out of range. Must be non-negative and less than the size of the collection. Parameter name: index"的问题

    在.NET中使用GridView控件的在线编辑数据时,出现了“ Index was out of range. Must be non-negative and less than the size ...

  10. Code First研究学习2_基本的错误及解决方法

    使用Code First时总有很多的问题出现,以下列举了一些基本的错误及解决方法! 1.当用Enable-Migrations启动数据库迁移后,如果再继续输入Enable-Migrations命令,则 ...