一、Spring
(一)核心概念
IoC(控制反转)
1.使用对象时,由主动new产生对象转换为由外部提供对象,此过程中对象创建控制权由程序转移到外部。
2.Spring提供了一个容器,成为IoC容器,用来充当思想中的“外部”。其负责对象的创建、初始化等一些列工作,被创建或者被管理的对象成为Bean.
DI (依赖注入)
在容器中建立bean与bean之间的依赖关系的整个过程,成为依赖注入。
IoC入门案例
1.导入spring坐标 spring-context
2.配置bean (id属性表示给bean起名字 class属性表示给bean定义类型)
3.获取IoC容器 (在app中)
4.获取bean (getBean)
5.调用对象
DI入门案例
1.删除业务层中使用new创建的dao对象
2.提供对应的set方法
3.配置service与dao的关系 (property标签表示配置当前bean的属性 name属性表示配置一个具体的属性 ref表示参照哪一个bean)
(二)bean
1. bean的基础配置
(1) bean的别名配置
id 和name效果相同 在name中可以定义多个别名,用逗号、分号、空格分隔
注:如果bean无法通过id或者name获取,将抛出异常NotSuchBeanDefinitionException错误 回去检查名字是否写错
(2) bean的作用范围
类别 | 描述 |
---|---|
名称 | scope |
功能 | 定义bean的作用范围:singleton:单例(默认) prototype 非单例 |
表现层对象、业务层对象、数据层对象和工具对象适合交给容器管理。
2. bean 的实例化
bean是如何创建的
bean本质上是对象,创建bean使用构造方法(调用无参的)完成,无论public 还是private都可以访问到。
实例化bean的三种方法
(1)构造方法(常用)
public class BookDaoImpl implements BookDao{
public void save(){
System.out.println("book dao save...");
}
}
//注意:无参的构造方法如果不存在,将抛出异常BeanCreationException
(2) 使用静态工厂实例化bean (了解)
(3) 通过实例工厂对象创建对象(了解)
3. bean 的生命周期
bean从创建到销毁的过程
1.初始化容器
(1)创建对象(内存分配)
(2)执行构造方法
(3)执行属性注入(set操作)
(4)执行bean初始化方法
2.使用bean
(1)执行业务操作
3.关闭/销毁容器
(1)执行bean销毁方法 (容器关闭前出发bean的销毁 主要有手工关闭和注册关闭钩子两种方式)
//表示bean初始化对应的操作
public void init(){
System.out.println("...");
}
//表示bean销毁前对应的操作
public void destory(){
System.out.println("...");
}
//注意需要对bean进行配置,destroy的应用需要关闭容器;也可以使用接口的方法
//注册关闭钩子
//ctx.registerShutdownHook();