☰
IOC与反射机制
2026/10/23 2:07:23 网站建设 项目流程

反射机制就是java开了后门,允许程序员在程序运行期间,获取到class对象元数据信息,从而对类结构、属性、方法进行动态分析和操作

原理:native方法
class.forName,以及invoke,getMethod等方法都是native方法。反射的实现原理就是通过native方法来直接访问方法区操作

获取到class对象,就获取到了类的元数据信息

获取class对象的方法:

  • 直接class.forName,通过全类名获取
  • 通过对象获取, xxx.getClass()
  • 通过类的class属性 例如 String.class

意义:
远程调用Rpc,调用方发过来一段json文本,通过反射机制,可以动态创建出来对象,动态调用其方法

Rpc的原理就是调用方使用动态代理,接收方使用反射
SpringBoot 的依赖注入也使用了反射,根据名称实例化对象。并且使用反射将属性set回去。没有set方法也可以通过反射进行注入

SPI机制

  1. 调用方只面向接口编程
  2. 通过ServiceLoader扫描一个文本文件,将其中的类全路径,使用反射进行实例化,提供服务
  3. 可以灵活切换实现类

自动装配

根据property配置文件,使用SPI反射机制,自动创建对象放入IOC容器。@Service @Compoment等属于是CompomentScan扫描创建出来的,不算是自动装配。只有通过springBoot的property文件创建出来的才算是自动装配,例如datasource

依赖注入

一个类直接使用Resource、Autowired直接就能注入属性,也没有set方法。底层就是使用了反射,直接塞值

IOC

  1. IOC控制反转就是将创建对象不在代码写死控制,让别人来控制创建哪个对象,依赖注入就是只声明依赖,容器负责创建对象
  2. IOC实现原理就是反射
  3. 入参是类全路径name,根据字符串创建对应的对象

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询