1. IOC
2022年9月6日
1. IOC
IoC (Inversion of Control) : 控制反转, 是一个理论,概念,思想
描述: 把对象的创建,赋值,管理工作都交给代码之外的容器实现, 也就是对象的创建是有其它外部资源完成
正转: 由开发人员在代码中,使用 new 构造方法创建对象, 开发人员主动管理对象
public static void main(String args[]){
Student student = new Student(); // 在代码中, 创建对象--正转
控制: 创建对象,对象的属性赋值,对象之间的关系管理
反转: 把原来的开发人员管理,创建对象的权限转移给代码之外的容器实现 由容器代替开发人员管理对象创建对象,给属性赋值
容器: 是一个服务器软件, 一个框架(spring)
为什么要使用 ioc : 目的就是减少对代码的改动, 也能实现不同的功能 实现解耦合
java 中创建对象有哪些方式:
- 构造方法 , new Student()
- 反射
- 序列化
- 克隆
- ioc : 容器创建对象
- 动态代理
ioc 的体现:
servlet:
- 创建类继承 HttpServelt
- 在 web.xml 注册 servlet ,使用
<servlet-name> myservlet </servlet-name>
<servelt-class>com.bjpwernode.controller.MyServlet1</servelt-class>
- 没有创建 Servlet 对象, 没有
MyServlet myservlet = new MyServlet()
- Servlet 是 Tomcat 服务器它为你创建的 Tomcat 也称为容器
Tomcat 作为容器: 里面存放的有 Servlet 对象, Listener , Filter 对象
IoC 的技术实现:
DI 是 ioc 的技术实现,
DI(Dependency Injection) :依赖注入, 只需要在程序中提供要使用的对象名称就可以, 至于对象如何在容器中创建, 赋值,查找都由容器内部实现