spring(二)依赖注入

1.依赖注入的概念

依赖注入简称DI与控制反转IOC的含义相同,是从两个角度描述一件事情.

在使用spring框架之后,对象的实例不在由调用者来创建,而是由spring容器创建,这种控制权发生了反转就叫IOC

从spring容器的角度来看,spring 容器负责将被依赖对象赋值给调用者的成员变量,这相当于为调用者注入了它依赖的实例,这就是DI

2.依赖注入的实现方式

  • 属性setter方法注入
  • 构造方法注入
  • 注解注入

例如setter注入(1)UserService

public interface UserService{
public void say();
}

(2)UserServiceImpl,在类中声明userDao属性,并添加属性的setter方法

public class UserServiceImpl implements UserService{
//声明UserDao属性
private UserDao userDao;
//添加UserDao属性的setter方法,用于实现依赖注入
public void setUserDao (UserDao userDao){
this.userDao=userDao;
}
//实现接口中的方法
public void say(){
//调用userDao中的say()方法,并执行输出语句
this.userDao=userDao;
System.out.println("userService say helloWorld!");
}
}

(3)在配置文件applicationContext.xml中



    
    
//将id为userDao的Bean注入到userService实例中
    

(4)创建测试类TestDI

public class TestDI{
public static void main(String[]args){
//1.初始化spring容器,加载配置文件
ApplicationContext applicationContext=new ClassPathXmlApplicationContext("applicationContext.xml");
//2.通过容器获取UserService实例
UserService userService=(UserService)applicationContext.getBean("userService");
//3.调用实例中的say()方法
userService.say;
}
}

 

你可能感兴趣的:(spring)