本例子摘自于《轻量级Java EE 企业应用实战(第三版) --Struts2 + Spring 3 + Hibernate》
准备:
eclipse开发环境、spring-framework-3.0.5.CI-834-dependencies、com.springsource.org.apache.commons.logging-1.1.1.jar
(其中eclipse可在 http://www.eclipse.org/downloads/ 下载、spring文件可从 http://www.springsource.org/download/community 下载、jar文件可从书中的光盘提供)
src目录下分别创建三个包,包名分别为apprun 存放程序启动代码文件wyrhero.app.service 存放POJO接口抽象代码文件wyrhero.app.service.impl 存放实现POJO接口实现代码文件
在wyrhero.app.service包下创建以下代码文件:Axe.java
package wyrhero.app.service; public interface Axe { public String chop(); }
Person.javapackage wyrhero.app.service; public interface Person { public void useAxe(); }
在wyrhero.app.service.impl包下创建以下代码文件:Chinese.javapackage wyrhero.app.service.impl; import wyrhero.app.service.Axe; import wyrhero.app.service.Person; public class Chinese implements Person { private Axe axe; public void setAxe(Axe axe) { this.axe = axe; } public void useAxe() { System.out.println(axe.chop()); } }
StoneAxe.javapackage wyrhero.app.service.impl; import wyrhero.app.service.Axe; public class StoneAxe implements Axe { public String chop() { return "石斧砍柴好慢"; } }
在apprun包下创建启动代码文件:BeanTest.javapackage apprun; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import wyrhero.app.service.Person; public class BeanTest { public static void main(String[] args) throws Exception { ApplicationContext ctx = new ClassPathXmlApplicationContext("bean.xml"); Person p = ctx.getBean("chinese", Person.class); p.useAxe(); } }
5.对项目进行配置
在项目的src文件中创建一个名为bean.xml的xml文件,输入以下内容:
bean.xml
<?xml version="1.0" encoding="UTF-8"?> <!-- Spring配置文件的根元素,使用spring-beans-3.0.xsd语义约束 --> <beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.springframework.org/schema/beans" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"> <bean id="chinese" class="wyrhero.app.service.impl.Chinese"> <property name="axe" ref="stoneAxe" /> </bean> <bean id="stoneAxe" class="wyrhero.app.service.impl.StoneAxe" /> </beans>