开发环境使用的是 Eclipse3.0 + myEclipse3.8.4。
其实很简单创先建一个 Java Project 。
1. 向工程添加所要使用的类包:Spring.jar, junit.jar, commons-logging.jar, log4j-1.2.8.jar。
2. 在 src 下添加一个接口:
package com.ivan.springtest;
public interface Action {
public String execute(String str);
}
3. 添加两个继承此接口的类:
package com.ivan.springtest;
public class ByeAction implements Action {
public String execute(String str) {
return "Bye, " + str;
}
}
package com.ivan.springtest;
public class HelloAction implements Action {
public String execute(String str) {
return "Hello, " + str;
}
}
4. 编写 Spring 的配置文件 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>
<description>Spring Quick Start</description>
<bean id="TheAction" class="com.ivan.springtest.HelloAction"></bean>
</beans>
5. 编写 log 设定文件,放置在 src 下,log4j.properties:
log4j.rootLogger=DEBUG, stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%c{1} - %m%n
6. 编写测试用例:
package test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.FileSystemXmlApplicationContext;
import com.ivan.springtest.Action;
import junit.framework.TestCase;
public class SpringTest extends TestCase {
public void testQuickStart() {
ApplicationContext ctx=new FileSystemXmlApplicationContext("bean.xml");
Action action = (Action) ctx.getBean("TheAction");
System.out.println(action.execute("Rod Johnson"));
}
}
Web Context
上面的示例中,ApplicationContext均通过编码加载。对于Web应用,Spring提供了可配置的
ApplicationContext加载机制。
加载器目前有两种选择:ContextLoaderListener和ContextLoaderServlet。这两者在功能上完全
等同,只是一个是基于Servlet2.3版本中新引入的Listener接口实现,而另一个基于Servlet接口实现。
开发中可根据目标Web容器的实际情况进行选择。
配置非常简单,在web.xml中增加:
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
或:
<servlet>
<servlet-name>context</servlet-name>
<servlet-class>
org.springframework.web.context.ContextLoaderServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
通过以上配置,Web容器会自动加载/WEB-INF/applicationContext.xml初始化
ApplicationContext实例,如果需要指定配置文件位置,可通过context-param加以指定:
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/myApplicationContext.xml</param-value>
</context-param>
配置完成之后,即可通过WebApplicationContextUtils.getWebApplicationContext方法在Web应用中获取ApplicationContext引用。