IOC:反转控制,将类的选择控制权转交给第三方,(DI 注入依赖)
注入依赖sping支持 构造函数注入和属性注入,一般开发适合使用属性注入,使用第三方容器(xml配置)来帮助注入,进行解藕。
实现依赖注入需要使用java的反射功能。
基础知识:
类装载器ClassLoader:寻找类的字节码文件并构造出类在JVM内部表示的对象组件。
工作机制:
1.装载:查找和导入CLASS文件
2.链接:检验class文件数据的正确性;准备给类的静态变量分配存储空间;解析将符号引用转成直接引用
3.初始化:对类的静态变量,静态代码执行初始化工作。
三个classloader:根装载器(C++编写,java中看那不到),ExtClassLoader(扩展类装载器),AppClassLoader(系统类装载器)
JVM装载类时使用”全盘负责委托机制“,一个类的依赖和引用由该类的classloader载入,先由父装载器寻找目标类
通过反射机制可以访问private和protect 成员变量方法