2008年11月6日星期四

第一个Spring程序!

最近一直在看Spring的书,决定好好把Java再补一补。算起来也有近一年的时间没有写过大型java程序了,还一向以java高手自居,真是惭愧之至。这次我看书算是下了一番功夫,至少不是像以前那样急于求成,而是把整本书看了一遍才开始动手,这样不至于学到皮毛就沾沾自喜。
闲话少说,还是将我的第一个程序的构建过程表述出来吧!
开发环境自然是JAVA开发环境的老大Eclipse了,第一步配置好Eclipse的环境。其实我的Eclipse本来就是用来开发J2EE的,大多数都已经配置好了,现在要做的就是添加Spring的类库。
打开Eclipse的选项菜单,在里面添加用户类库,我取名字为Spring-lib,把Spring运行的最重要的两个类库spring.jar和commons-logging.jar添加进去就好!

接下来就可以建立java工程了,第一个spring程序当然很简单,只是向spring问好一下就好。需要注意的是建立java工程的时候要配置一下build path,把刚才的用户类库spring-lib加入到工程的build path中,不然程序无法运行。
工程的主要结构如下:

TestSpring.java是可执行的,如下:
package test;

import org.springframework.beans.factory.xml.XmlBeanFactory;
import org.springframework.core.io.FileSystemResource;
import westyi.HelloBean;

public class TestSpring {
public static void main(String[] args) {
XmlBeanFactory factory = new XmlBeanFactory(new FileSystemResource(
"src/beans.xml"));
HelloBean test = (HelloBean) factory.getBean("greet");
test.greet();

}
}
在main函数中体现出了spring程序的一般过程。
Greet.java是一个接口,定义如下:
package westyi;

public interface Greet {
public void greet();
}
HelloBean.java是一个java bean,这是spring程序的重要组成部分,是IOC的基础,如下:
package westyi;

public class HelloBean implements Greet {
String greetings;

public void setGreetings(String greetings) {
this.greetings = greetings;
}

public void greet() {
System.out.println(greetings);
}
}
beans.xml是spring的配置文件,也是IOC的描述文件
<?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="greet" class="westyi.HelloBean">
<property name="greetings" value="Hello Spring!" />
</bean>
</beans>

运行结果如下:

虽然程序很小,几乎谈不上什么功能,但却体现出了spring的精髓之一:IOC,invertion of control。在beans.xml的配置文件中,只有一个名为greet的bean,为它注入了值为"Hello Spring"的greetings属性。程序运行期间通过spring的IOC容器获得了该bean,并调用了greet的方法。简单的才是最好的!spring诠释着这一点。它的思想并不复杂,包括后面的AOP,都不是只有天才才想到的。虽然简单,但用好它却并不容易,以后还需多多练习,多多理解它的思想!

ps:发现Eclipse的xml编辑功能不错,解析的也很不错!还有ctrl+shift+f很强大!

0 评论: