学习SPRING在春天 - Learn Spring in spring(二)
来源:互联网 发布:ip反向解析域名 编辑:程序博客网 时间:2024/06/07 10:11
二、spring管理对象的简单例子
任何需要交给spring管理的对象,都必须在配置文件中注册,这个过程被称为wiring,下面做一个最简单的Hello world演示,我们将要注册的类如下:
- /*
- * 创建日期 2005-3-22
- */
- package org.bromon.spring.test;
- /**
- * @author Bromon
- */
- public class HelloTalker
- {
- public String greeting()
- {
- return "hello world";
- }
- }
然后我们来编写一个spring配置文件,文件名任意,在我这里它是springConfig.xml,需要注意的是这个文件应该存放在classpath所包含的路径中:
- "1.0" encoding="UTF-8"?>
- "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
-
class=" org.bromon.spring.test.HelloTalker">
通过使用bean标签,注册了一个HelloTalker对象,它的名字叫做helloTalker。然后我们编写一个测试类,它的工作是利用spring框架提供的接口,加载配置文件,通过指定对象的id,获得一个对象。它的代码如下:
- /*
- * 创建日期 2005-3-17
- */
- package org.bromon.spring.test.junit;
- import java.io.FileInputStream;
- import org.springframework.beans.factory.xml.XmlBeanFactory;
- import org.springframework.context.ApplicationContext;
- import org.springframework.context.support.ClassPathXmlApplicationContext;
- import org.bromon.spring.test;
- /**
- * @author Bromon
- */
- public class TestStudentManager extends TestCase {
- public void testHelloTalker()
- {
- try
- {
- ApplicationContext context =new ClassPathXmlApplicationContext("springConfig.xml");
- HelloTalker ht=(HelloTalker)context.getBean("helloTalker");
- System.out.println(ht.greeting());
- }catch(Exception e)
- {
- e.printStackTrace();
- }
- }
- }
字串1
这个程序就完成了,因为只有一个对象HelloTalker被注册到了spring中,所以不存在对象间的依赖,当然也就不涉及依赖注入。下面演示一个简单的依赖注入:
第一步是修改HelloTalker,增加一个String name属性:
- public String name;
为该属性编写set方法,该方法必须严格遵守javabean的命名规则:
- public void setName(String name)
- {
- this.name=name;
- }
字串9
修改greeting方法:
- public String greeting()
- {
- return "hello "+name;
- }
如你所见,name属性没有初试化,因为它的值将在运行过程中被spring动态注射入。
第二步,修改springConfig.xml中唯一的这个bean配置:
class=" org.bromon.spring.test.HelloTalker"> -
-
bromon
字串8
修改完成。我们将一个名字"bromon"写死在springConfig.xml中,它会被动态的注入到HelloTalker的name属性中,greeting方法将会把它打印出来。重新运行刚才的junit类,可以看到结果。
我们只演示了如何注入一个最简单的String,实际上我们可以注入任何值类型,也可以注入任何类的实例,也可以注入List、Map、 Properties。配置文件管理了所有的对象和对象间的关系,而对象则只负责执行自己的功能,他们的职责越少,藕合度越低,系统就越容易测试,管理维护也更容易。
来自:http://www.javah.net/Spring/20070405/84.html
- 学习SPRING在春天 - Learn Spring in spring(二)
- 学习SPRING在春天 - Learn Spring in spring(二)
- 学习SPRING在春天 - Learn Spring in spring(一)
- 学习SPRING在春天 - Learn Spring in spring(一)
- Learn Spring in spring(二)
- [转]Learn Spring in spring(二)
- Learn Spring in spring(二) (zz)
- Learn Spring in spring
- Learn Spring in spring(一)
- Learn Spring in spring(三)
- Learn Spring in spring(2)
- Learn Spring in spring(3)
- Learn Spring in spring(四)
- Learn Spring in spring(一)
- Learn Spring in spring(2)
- Learn Spring in spring(3)
- Learn Spring in spring(四)
- [转]Learn Spring in spring(一)
- Spring 系列: Spring 框架简介
- 浅谈.Net下的Session用法
- 学习SPRING在春天 - Learn Spring in spring(一)
- DIY你的QQ登陆器
- 在C#中读写INI文件
- 学习SPRING在春天 - Learn Spring in spring(二)
- 服务端程序的隐藏
- 网络应用系统---系统设计架构示例
- 实现窗体淡入淡出的完整代码
- AJAX上手例子(一)
- 网络应用系统---系统设计架构个人项目实战示例(各种页面代码A)
- arcims 两种连接方式(java connector,servlet connector)
- .NET 2.0中的企业库异常处理块简述
- 第一次用CSDN BLOG感受