通过setter方法方式来演示Spring容器在应用中是如何实现依赖注入的,实现StudentService调用StudentDao的saveStudent操作。
1. 创建项目
Idea创建Java项目,项目名称为:case03-spring-student02。
2. 导入spring相关jar包
case03-spring-student02项目下创建lib目录,在lib目录下导入Jar包:
- 核心包
spring-core-5.3.25.jar、
spring-beans-5.3.25.jar、
spring-context-5.3.25.jar、
spring-expression-5.3.25.jar
- 测试包
junit-4.6.jar
- 依赖包
commons-logging-1.2.jar
3. 创建Spring配置文件
src目录下创建applicationContext.xml配置文件。
<?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.xsd"> <!--将StudentDao类配置给Spring,让Spring创建其实例--> <bean id="studentDao" class="com.wfit.dao.StudentDao"/> <!--StudentService类配置给Spring,让Spring创建其实例--> <bean id="studentService" class="com.wfit.service.StudentService"> <!--将studentDao实例注入到了studentService中--> <property name="studentDao" ref="studentDao"/> </bean> </beans>
4. 创建StudentService类
src目录下创建com.wfit.service包,此包目录下创建StudentService类,实现addStudent方法。
public class StudentService { private StudentDao studentDao; public void setStudentDao(StudentDao studentDao) { this.studentDao = studentDao; } public void addStudent(){ studentDao.saveStudent(); } }
5. 创建StudentDao类
com.wfit.dao目录下创建StudentDao.java类。
public class StudentDao { public void saveStudent(){ System.out.println("保存学生信息成功!"); } }
6. 创建测试类
src目录下创建com.wfit.test包,此包目录下创建TestStudent测试类。
public class TestStudent { @Test public void test(){ //加载applicationContext.xml配置 ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml"); //通过容器获取StudentService实例 StudentService studentService = applicationContext.getBean("studentService", StudentService.class); //调用addStudent方法 studentService.addStudent(); } }
7.执行结果