现在很流行的一个框架,天天在网上抄作,据说是可以取代“重”量级的容器EJB,其实之前我也写过一篇关于这两种容器的比较的文章(《EJB 和 without EJB》虽然看法比较片面,也有很多不足的地方),其实这篇文章所做的事应该是在那篇文章之前的,为了比较EJB和without EJB也就是找到为什么spring叫“轻”量级容器,我做了一些实验,其中一个实验就是写一个简单spring的实例,这正是我这篇文章要讲的内容,如何写一个简单的spring程序,开始DIY啦。
首先我们是在安装了eclipse并且在这个基础上安装了myeclipse插件的情况下做的,因为安装了这个插件以后一切东西都变得简单了,很多文件这个插件可以帮我们自动生成,这样一来事情就变得简单多了,为了是这个例子显得更简单,所以我选择了尽量用图例说明,这样比较直观,大家也易懂。
首先先建立一个普通的JAVA项目,和建立其他JAVA项目的过程一样,没有任何区别:
新建à命名à建立一个全新的JAVA项目,为了源代码和库文件不混乱,所以再建立两个文件夹分别来放源程序和库文件,建立好以后结构目录如下:
然后我们利用myeclipse帮我们生成需要的库文件,右键点击项目,自动生成spring项目
导入spring需要的jar包,spring的最新版本据说已经达到了 1.2.5 了,不过这里实验只需要导入myeclipse自带的比较老一点的版本就可以了。
然后建立class文件,右键点击src创建class,接口以及配置文件。这个步凑和其他的java程序没有什么区别。
先建立接口文件I_Action
I_Action.class
public interface I_Action {
public String execute(String str);
}
再继承这个接口两个文件
UpperAction.class
public class UpperAction implements I_Action {
private String message;
public String getMessage()
{
return this.message;
}
public void setMessage(String message)
{
this.message=message;
}
public String execute(String str)
{
return (this.getMessage()+str).toUpperCase();
}
}
LowerAction.class
private String message;
public String getMessage()
{
return this.message;
}
public void setMessage(String message)
{
this.message=message;
}
public String execute(String str)
{
return (this.getMessage()+str).toLowerActionCase();
}
}
然后建立一个实现接口的类
Test_spring.class
import org.springframework.beans.factory.xml.XmlBeanFactory;
import org.springframework.core.io.ClassPathResource;
public class Test_spring {
/**
* @param args
*/
public static void main(String[] args) {
ClassPathResource res = new ClassPathResource("bean.xml");
XmlBeanFactory factory = new XmlBeanFactory(res);
I_Action action=(I_Action)factory.getBean("Action_Instance");
System.out.println(action.execute("test"));
}
}
一个配置文件
Bean.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="Action_Instance" class="src.LowerActionAction">
<property name="message">
<value>Hello</value>
</property>
</bean>
</beans>
完成所有的文件后,文件结构目录如下:
测试的时候通过修改配置文件里面的class=”src.LowerAction”即可指定调用不同的类文件来完成不同功能,不用去修改源程序,这就是spring的方便之处。这只是一个简单的入门的例子,简单到我们都没有怎么看出他的优越性,同时也是因为我关于spring还没有详细的参详,还有很多优越性我还没有体会到,不过我始终觉得spring不仅仅只是这点优势,如果只凭这点东西的话还不足以和EJB叫板,在我的上一篇BLOG里面我也提到了这个观点,有时间应该在多看看spring。