#千峰逆战班,拼搏永向前#

微笑、不失礼 提交于 2020-03-12 02:35:21

总结一波:
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
效率高
浪费内存
不支持懒加载
线程安全
推荐开发中使用

8,静态内部类单例设计模式 11111
静态内部类:不随着外部类的加载而加载
效率高
节省内存
支持懒加载
线程安全
推荐开发中使用

9,懒汉单例设计模式
效率较高
节省内存
支持懒加载
线程不安全(第一次创建对象)
不推荐开发中使用

10,同步懒汉单例设计模式
效率非常低
节省内存
支持懒加载
线程安全(所有的场景都是线程安全)
不推荐开发中使用

11,双重校验单例设计模式 11111
效率高
节省内存
支持懒加载
线程安全(第一次创建线程安全,后续压根不需要线程安全)
推荐开发中使用

12,以上单例设计模式还存在的问题
无法避免反射攻击和序列化攻击

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!