准备阶段:
到Spring官网下载所需的API包,其中spring-framework-X.X.X.RELEASE-with-docs.zip压缩包需要下载,里面的dist目录下有所需的API,还有一个是com.springsource.org.apache.commons.logging-1.1.1.jar需要下载,下载地址:http://www.springsource.org/download/community?project=Spring%2520Framework
图解:
我已经下载还了所需的API包,版本是3.1.1的,可以直接下载使用:http://pan.baidu.com/share/link?shareid=28989&uk=2198762756
测试阶段:
项目结构:
所需包导入:
其实有些jar包在这个测试中是不需要的,不过为了方便也不想逐一测试了。
com.sunflower.pojo.Student:
1 package com.sunflower.pojo; 2 3 /** 4 * 学生实体类 5 */ 6 public class Student { 7 private String name; 8 private int age; 9 10 public String getName() { 11 return name; 12 } 13 14 public void setName(String name) { 15 this.name = name; 16 } 17 18 public int getAge() { 19 return age; 20 } 21 22 public void setAge(int age) { 23 this.age = age; 24 } 25 26 }
这个类在这个测试中没有实际用途,只不过让这个测试看起来有这个意思。
com.sunflower.yuan.dao.StudentDAO:
1 package com.sunflower.yuan.dao; 2 3 4 /** 5 * 学生数据存取接口,操作底层数据 6 */ 7 public interface StudentDAO { 8 public void saveStudent(); 9 10 public void removeStudent(); 11 }
com.sunflower.yuan.daoimp.StudentDAOImp:
1 package com.sunflower.yuan.daoimp; 2 3 import com.sunflower.yuan.dao.StudentDAO; 4 5 /** 6 * 学生数据存取实现类 7 */ 8 public class StudentDAOImp implements StudentDAO { 9 10 @Override 11 public void removeStudent() { 12 System.out.println("Student deleted! Spring test success"); 13 } 14 15 @Override 16 public void saveStudent() { 17 System.out.println("Student saved! Spring test success"); 18 } 19 20 }
com.sunflower.yuan.service.StudentService:
1 package com.sunflower.yuan.service; 2 3 /** 4 * 学生业务处理接口 5 */ 6 public interface StudentService { 7 public void saveStudent(); 8 9 public void removeStudnet(); 10 }
com.sunflower.yuan.serviceimp.StudentServiceImp:
1 package com.sunflower.yuan.serviceimp; 2 3 import com.sunflower.yuan.dao.StudentDAO; 4 import com.sunflower.yuan.daoimp.StudentDAOImp; 5 import com.sunflower.yuan.service.StudentService; 6 7 /** 8 * @author Caihanyuan 9 * @time 2012-9-11 下午07:47:55 10 */ 11 public class StudentServiceImp implements StudentService { 12 private StudentDAO studentDao = new StudentDAOImp(); 13 14 @Override 15 public void removeStudnet() { 16 studentDao.removeStudent(); 17 } 18 19 @Override 20 public void saveStudent() { 21 studentDao.saveStudent(); 22 } 23 24 }
com.sunflower.yuan.test.Test:
1 package com.sunflower.yuan.test; 2 3 import org.springframework.context.ApplicationContext; 4 import org.springframework.context.support.ClassPathXmlApplicationContext; 5 6 import com.sunflower.yuan.service.StudentService; 7 import com.sunflower.yuan.serviceimp.StudentServiceImp; 8 9 /** 10 * @author Caihanyuan 11 * @time 2012-9-11 下午07:53:57 12 */ 13 public class Test { 14 public static void main(String[] args) { 15 ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml"); 16 17 //得到注入的bean 18 StudentService studentService = context.getBean("studentService", StudentServiceImp.class); 19 studentService.saveStudent(); 20 studentService.removeStudnet(); 21 } 22 }
第15行是通过解析xml配置文件获取Spring容器,第18行得到在配置文件中注入到Spring中的对象,注入的对象不能是接口。
applicationContext.xml:
1 <?xml version="1.0" encoding="UTF-8"?> 2 <beans 3 xmlns="http://www.springframework.org/schema/beans" 4 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 5 xmlns:p="http://www.springframework.org/schema/p" 6 xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"> 7 8 <bean id="studentService" class="com.sunflower.yuan.serviceimp.StudentServiceImp"></bean> 9 </beans>