总结一波: 1,JDBC引入解耦方式 工厂模式 将编译器依赖变为运行时依赖 配置文件 2,传统三层结构面临的问题 new 关键字的使用 3,自定义Spring容器 将对象创建交给Spring容器进行管理 Spring容器:反射+xml解析+工厂模式 ①,需要将要创建的对象的信息保存到xml配置文件中 配置一个bean标签就对应有一个对象 ②,在自定义Spring容器初始化的时候,将xml文件解析 将解析到的对象信息保存到map集合中 ③,根据这些保存的信息使用反射创建对象, ④,提供一个方法对外提供这些对象 4,自定义Spring容器优化版 ①,需要将要创建的对象的信息保存到xml配置文件中 ②,在自定义Spring容器初始化的时候,将xml文件解析 ③,根据解析到信息创建对象,并把对象保存到map集合 ④,提供一个方法对外提供这些对象 5,自定义Spring容器的使用 初始化spring容器 getBean 6,IoC控制反转 资源的控制权反转了!!! 没有使用Spring容器之前,资源的控制权在java程序手上 使用spring容器之后,资源的控制权到spring容器手上了!! 单例模式 ①,私有化构造方法 ②,声明本类对象,并使用private static修饰 ③,提供一个对外访问方法 重点: 7,饿汉单例设计模式 11111 效率高 浪费内存 不支持懒加载 线程安全