5、DI依赖注入
1、概念
IOC:控制反转
,从容器的角度考虑,spring容器控制资源,并给到别的应用程序资源。
DI:依赖注入
,从应用程序的角度考虑,它是被IOC容器注入资源的,这也就叫依赖注入。
- 依赖:bean对象的创建依赖于容器
- 注入:bean对象中的所有属性,由容器来注入
2、依赖注入的两种方式
- set注入
- 构造器注入
1、set注入–属性注入(主流)![请添加图片描述](https://img-blog.csdnimg.cn/87813bf115da4ad8a77eff638528f550.png)
主要是注入引用数据类型
1、将要注入的到别的地方的类注册到spring容器当中
2、将要被注入的类注册到spring容器当中,并且这个类中要有成员变量,然后又set方法
3、在要被注入的类的bean中注册property属性,然后name=set的名字开头小写,id就是这个要注册到别的地方的这个类的id
应用场景:业务层需要使用dao层的方法,传统的做法就是创建对象,在spring中就不一样了,是把这两个类都注册到spring中,然后给一个成员变量和set,接着把这个类的id和成员的name写进去。
UserDao
package com.zhu.dao;
public interface UserDao {
public void add();
}
UserDaoImpl
package com.zhu.dao;
public class UserDaoImpl implements UserDao{
private String name;
public void add() {
System.out.println("这个添加方法运行了...");
}
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
}
UserService
package com.zhu.service;
public interface UserService {
public void add();
}
UserServiceImpl
package com.zhu.service;
import com.zhu.dao.UserDao;
public class UserServiceImpl implements UserService{
//这里业务层要调用dao层的类,以前是直接创建对象使用,这里使用spring容器的set注入
private