首先在网上下载Spring的JAR包,分别为:spring-framework-3.0.5.RELEASE-with-docs.zip 和 spring-framework-3.0.5.RELEASE-dependencies.rar
第一个解压缩后是spring框架及文档,第二个解压缩后是spring框架的依赖JAR包。
在Eclipse中新建一个JAVA项目,并为该项目添加自己的用户库,如果还不知到如何建立自己的用户库,参考创建自己的用户库
我创建2个用户库,spring3.0.5和common-logging,其中spring3.0.5里面的JAR包是spring-framework-3.0.5.RELEASE-with-docs.zip解压缩后dist文件夹,
common-logging里面的JAR包是我自己在网上下载的com.springsource.org.apache.commons.logging-1.1.1.jar,导入完成后项目目录如图:
新建PersonService.java类,代码如下:
package myspring;
public class PersonService {
private String name;
public void setName(String name){
this.name = name;
}
public void info(){
System.out.println("此人名为"+name);
}
}
新建applicationContext.xml配置文件(注意:要在src目录下新建,否则会找不到xml文件),将 PersonService类部署在Spring配置文件当中,代码如下:
<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
<!-- 将Person类部署成Spring容器中的Bean -->
<bean id="person" class="myspring.PersonService">
<property name="name" value="wawa"/>
</bean>
</beans>
编写SpringTest.java类进行测试,代码如下:
package myspring;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class SpringTest {
public static void main(String[] args){
//创建Spring的ApplicationContext
ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
//输出Spring容器
System.out.println(ctx);
PersonService p = (PersonService)ctx.getBean("person");
p.info();
}
}
运行结果如下:
org.springframework.context.support.ClassPathXmlApplicationContext@1858aa0: startup date [Tue Oct 13 15:56:37 CST 2015]; root of context hierarchy
此人名为:wawa
可以看出,输出类Spring的applicationContext实例和PersonService实例。上面代码并不是直接创建Person实例,
而是通过Spring容器获取PersonService的nane的属性值。Spring容器根据配置文件信息,负责创建PersonService实例,
并为PersonService实例设置属性值,这种由Spring容器为对象设置属性的方式称作控制反转(Inversion of Control,IoC)