Spring 小示例
通过一个简单的示例来初步理解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 小示例的更多相关文章
- ReactNative新手学习之路06滚动更新ListView数据的小示例
本节带领大家学习使用ListView 做一个常用的滚动更新数据示例: 知识点: initialListSize={200} 第一次加载多少数据行 onEndReached={this.onEndRea ...
- 基于注解的Spring AOP示例
基于注解的Spring AOP示例 目录 在XML配置文件中开启 @AspectJ 支持 声明切面及切入点 声明通知 测试 结语 在XML配置文件中开启 @AspectJ 支持 要使用Spring的A ...
- MVC客户端验证的小示例
MVC客户端验证的小示例 配置客户端验证的可用性: <configuration> <appSettings> <add key="ClientValidat ...
- 搭建Spring开发环境并编写第一个Spring小程序
搭建Spring开发环境并编写第一个Spring小程序 2015-05-27 0个评论 来源:茕夜 收藏 我要投稿 一.前面,我写了一篇Spring框架的基础知识文章,里面没 ...
- 【.Net】Socket小示例
引言 项目中用到了Socket,这里做个控制台小示例记录一下. Client 客户端的Receive用了异步方法,保持长连接,可以随时发送消息和响应服务端的消息,如下 static string Cl ...
- Struts2+Hibernate+Spring 整合示例
转自:https://blog.csdn.net/tkd03072010/article/details/7468769 Struts2+Hibernate+Spring 整合示例 Spring整合S ...
- CentOS7 安装 RocketMQ 实践和小示例
CentOS7 安装 RocketMQ 实践和小示例 1.通过 SSH 工具(比如 XShell)连接到 CentOS7 服务器上: 2.进入到 /usr/local 目录中: cd /usr/loc ...
- Highcharts入门小示例
一.创建条形图 1.创建div容器 <div id="container" style="min-width:800px;height:400px"> ...
- spring小例子-springMVC+mybits整合的小例子
这段时间没更博,找房去了... 吐槽一下,自如太坑了...承诺的三年不涨房租,结果今年一看北京房租都在涨也跟着涨了... 而且自如太贵了,租不起了.. 突然有点理解女生找对象要房了.. 搬家太 ...
随机推荐
- linux串口驱动分析
linux串口驱动分析 硬件资源及描写叙述 s3c2440A 通用异步接收器和发送器(UART)提供了三个独立的异步串行 I/O(SIO)port,每一个port都能够在中断模式或 DMA 模式下操作 ...
- (第三章)Java内存模型(下)
一.happens-before happens-before是JMM最核心的概念.对于Java程序员来说,理解happens-before是理解JMM的关键. 1.1 JMM的设计 从JMM设计者的 ...
- LIB文件和DLL文件的作用
(1)lib是编译时需要的,dll是运行时需要的.如果要完成源代码的编译,有lib就够了.如果也使动态连接的程序运行起来,有dll就够了.在开发和调试阶段,当然最好都有.(2)一般的动态库程序有lib ...
- Socket 理解
TCP/IP要想理解socket首先得熟悉一下TCP/IP协议族, TCP/IP(Transmission Control Protocol/Internet Protocol)即传输控制协议/网间协 ...
- LDAP-常用命令
1.recreating default ads instance ./ [root@dhcppc2 ~]# dsadm delete /usr/local/dsee7/var/dcc/ads #de ...
- 关于SQL中数据类型(float和real)和 .NET Framework 中数据类型(float和double)的问题
今天同学写程序遇到一个问题,MSSQL里的数据是 float 类型,在 .NET Framework 中用的时候也转换成 float 类型,结果报错,类型转换异常,明明是相同的类型,为什么会异常 在w ...
- Aspose.Words导出dt到word的问题
已解决:单挑数据导入到一个word文档,导出文字和图片成功,执行Main();方法导出dt到word 待解决:多条数据(文字,图片的导入到一个word文档里面)从dt导入到word;已发现的错误提示“ ...
- 页面传值中get和post区别
get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应. post是通过HTTP post机制,将表单内各个字段与其内容放置在HTML HEADER内一起传送到 ...
- 一步一步教你使用Git
一步一步教你使用Git 互联网给我们带来方便的同时,也时常让我们感到困惑.随便搜搜就出一大堆结果,然而总是有大量的重复和错误.小妖发出的内容,都是自己实测过的,有问题请留言. 现在,你已经安装了Git ...
- Android Intent到底能做些什么
Android Intent到底能做些什么 原文:http://www.toutiao.com/i6348296465147757058/?tt_from=mobile_qq&utm_camp ...