https://share.mubu.com/doc/38MeC8y07WC
一 : spring简介
(一) 概述
- Spring是一个轻量级的解决方案, 可以一站式的构建企业级应用
- Spring是模块级的, 允许你使用那些你需要的, 丢弃你所不需要的
- 你可以使用IOC容器, 同时可以在UI层使用任意的web框架, 同时可以使用任意的DAO层框架
- Spring支持声明式事务管理, 提供了远程访问计数, 持久化数据的多种操作
- Spring提供了一个充满特色的mvc框架(springmvc)
- Spring可以在软件中使用aop(面向切面编程)
(二) 名词解释
轻量级和重量级 : 系统对于环境的依赖程度
一站式 : 类比小米之家(生态圈)
声明式 : 显示的标注需要声明的地方
(三) 体系结构
Spring-jdbc : spring对jdbc 的支持
Spring-orm : spring对orm的支持
Spring-oxm : spring对oxm的支持
Spring-tx : spring对事务的支持
Spring-web : spring对web的支持
Spring-aop : spring对aop的支持
Spring-aspects : spring对切面的支持
Spring-test : spring对单元测试的支持
Spring-core : spring的核心类库
Spring-beans : spring对于bean的管理
Spring-context : spring的上下文(周边)
Spring-expression : spring对于表达式的支持
二 : IOC
(一) 简介
IOC : inversion of control, 控制反转
DI : dependency injection, 依赖注入
- IOC也被称为是DI, 这是一个定义配合一起工作的依赖对象的进程
- 通过构造器参数, 工厂方法参数, 对象实例化后设置属性来实现
- IOC容器在创建对象的时候注入依赖
- 这个过程是反向的, 一次被称为控制反转
总结: IOC是控制反转, 简单来说, 就是将创建对象的权利交给spring, 达到充分的解耦合的目的
Person person = new Person();
(二) 入门案例
- 添加依赖
- 编写目标类
- 编写配置文件applicationContext.xml, 托管person
- 从容器中获取对象
(三) 实现原理
(四) 核心API
BeanFactory : spring的心脏, 供框架内部调用, 需要的时候才去实例化
ApplicationContext : spring的躯体, 供使用者调用, 容器启动直接实例化
三 : bean
(一) 实例化
- 无参构造器
- 静态工厂
- 实例化工厂
(二) 生命周期和作用范围
singleton : 默认值, 每个spring容器中只有一个对应的实例, 单例模式
Prototype : 每次获取的是不同的实例, 多例模式
request : bean的生命周期和request保持一致
session : bean的生命周期和session保持一致
application : bean的生命周期和ServletContext保持一致
websocket : bean的生命周期和WebSocket保持一致
Websocket是对tcp的封装
Udp : 广播, 效率, 效率高
Tcp : 录播, 相对安全, 有回应, 效率相对较差
(三) 两个特殊方法
四 : 依赖注入
DI : dependency injection, 依赖注入
(一) IOC和DI的区别与联系
站在person的角度car是属性, car的注入就是DI
站在car的角度, car的创建是IOC
(二) 注入方式
- 构造器注入
- Set注入
- Array注入
- List注入
- Set注入
- Map注入
- Properties注入
- 对象属性的注入
五 : 配置文件模块化
(一) 一次加载多个配置文件
(二) 主配置文件加载从配置文件
(三) 注意事项
- 同一个xml配置文件中不允许出现id相同的
- 不同xml配置文件中有id相同的, 会发生覆盖
的id不允许相同
六 : spring-jdbc
(一) Who does what
(二) 入门案例
- 添加依赖
- 编写实体类
- 编写dao
- 编写配置文件
- 增删改查