[笔记]Spring-Day1 — IOC&DI
学什么
简化开发: Spring框架中提供了两个大的核心技术
IOC
AOP
核心概念
IOC & IOC容器 & Bean
IOC(Inversion of Control)控制反转
不自己new对象,交给容器new -- 解耦
IOC容器负责对象的创建、初始化等一系列工作,其中包含了数据层和业务层的类对象
被创建或被管理的对象在IOC容器中统称为Bean
DI
(Dependency Injection)依赖注入
建立容器中对象与对象之间的绑定关系
service运行需要依赖dao对象
案例
解耦BookDao
pom.xml添加依赖
添加案例中需要的类
添加spring配置文件applicationContext.xml
获取IOC容器、从容器中获取对象进行方法调用
运行程序测试
解耦BookService
去除BookServiceImpl中的new,为属性提供setter方法
修改配置完成注入
运行程序
关于bean
bean的基础配置
配置别名 name
name
配置范围(是否为单例) scode
scode
bean的实例化
构造方法实例化 — 无参构造方法
在BookDaoImpl类中添加一个无参构造函数,并打印一句话,方便观察结果
静态工厂实例化 — 了解即可
实例工厂化 — 额额不太懂
准备一个Dao和DaoImpl类
创建一个工厂类OrderDaoFactory并提供一个普通方法
创建一个UserDaoFactoryBean的类,实现FactoryBean接口,重写接口的方法
配置文件添加
编写AppForInstanceUser运行类,在类中通过工厂获取对象
bean的生命周期
bean对象从创建到销毁的整体过程
初始化容器
1.创建对象(内存分配)
2.执行构造方法
3.执行属性注入(set操作)
4.执行bean初始化方法
使用bean
执行业务操作
关闭/销毁容器
执行bean销毁方法
代码实现
1.init&destory
2.close —执行destroy方法的内容
3.注册钩子关闭容器 — 执行destroy方法的内容
DI
相关内容
setter注入
简单类型
引用类型
构造器注入
简单类型
引用类型
自动配置
不用写配置文件了
类型
按类型(常用)
按名称 — 有多个相同类型的对象
按构造方法
集合注入
数组类型数据
注入List类型数据
注入Set类型数据
注入Map类型数据
注入Properties类型数据
最后更新于