要求创建Service类和Dao类,在Service类中得到Dao类的对象,进而操作Dao里面方法
1实现过程
(1)在Service类中把Dao作为类型属性
(2)生成Dao类型的Set方法
Service类和Dao类
package cn.itcast.service;
public class UserService {
//1.定义一个Dao类型属性
private UserDao userDao;
//2.生成其set方法
public void setUserDao(UserDao userDao) {
this.userDao = userDao;
}
public void add(){
System.out.println("userservice.............");
userDao.add();
}
}
Dao类
package cn.itcast.service;
public class UserDao {
public void add(){
System.out.println("userDao.............");
}
}
配置文件
<?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">
<!-- 注入对象类型的属性 -->
<!-- 1.配置Service和Dao对象 -->
<bean id="userService" class="cn.itcast.service.UserService">
<!-- 通过set注入dao对象 -->
<!-- name属性值:Service类中属性名称,现在不能写value,因为value对应字符串,现在是对象
ref属性值:Dao中配置bean标签属性id值
-->
<property name="userDao" ref="userDao"></property>
</bean>
<bean id="userDao" class="cn.itcast.service.UserDao"></bean>
</beans>
测试类
package cn.itcast.service;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class testIoc {
@Test
public void testUser(){
//1.加载spring配置文件
ApplicationContext context=new ClassPathXmlApplicationContext("beanConfig.xml");
//得到配置创建的对象
UserService user=(UserService) context.getBean("userService");
user.add();
}
}
打印结果
image.png2IOC和DI
(1)IOC对象反转,把创建对象交给spring控制
(2)DI依赖注入:向类里面属性设置值
(3)依赖注入不能单独存在,需要建立在ioc之上
网友评论