Spring环境的搭建及示例
1.到http://www.springsource.org/download下载spring,我用的是spring-framework-2.5.6的版本
?
2.导入2个常用包
?? spring-framework-2.5.6\dist\spring.jar
???spring-framework-2.5.6\lib\jakarta-commons\commons-logging
?
3.创建beans.xml文件(该配置模版可以从spring的参考手册或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"> <bean id="personServiceBean" style="margin: 0cm 0cm 0pt;">? Window->Preferences->MyEclipse->Files and Editors->XML-> XML Catalog?? ???点"add",在出现的窗口中的Key Type中选择URI,在location中选"File system",然后在spring解压目录
?的 dist/resources目录中选择spring-beans-2.5.xsd,回到设置窗口的时候,
?一定要把窗口中的Key Type改为Schema? location,Key改为 http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
?
beans.xml中的<bean>元素是用于配置我们要交给Spring管理的bean类
?通过Bean中的id属性可以获得该Bean,该值不能包含特殊字符,Bean也可由name属性获得,与id属性所不同的是name属性可以包含特殊字符,如:(/spring/spring)
?
class属性:指定要交给Spring管理的Bean类
当spring容器启动后,因为spring容器可以管理bean对象的创建,销毁等生命周期,所以我们只需从容器直接获取Bean对象就行,而不用编写一句代码来创建bean对象。
?
4.实例化spring容器?
?ApplicationContext ctx = new ClassPathXmlApplicationContext(new String[]{"beans.xml"});
?
5.编写测试类,测试Spring环境是否搭建成功
package spring.test;import org.junit.Test;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;import com.spring.service.PersonService;public class SpringTest {@Testpublic void instanceSpring() {ApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml");// PersonService personService = (PersonService) ctx.getBean("personServiceBean");// personService.save();}}?
?6.从spring容器中获取bean
PersonService personService = (PersonService) ctx.getBean("personServiceBean");?
7.?personServiceBean的代码如下:
package com.spring.service.impl;import com.spring.service.PersonService;public class PersonServiceBean implements PersonService {public void save() {System.out.println("save success!"); }}?其中PersonServiceBean实现了PersonService接口:
package com.spring.service;public interface PersonService {public abstract void save();}?这种面向接口的编程增强了代码的灵活性?
?
?8.打开注释的代码,运行测试程序,可以看到控制台输出:save success!?