Spring对Aware接口的处理
Spring 中定义了一个 Aware 接口,用于表示一个 bean 可以通过回调的方式接收 Spring 容器的通知。该接口并未定义具体的方法,而是交给子类决定,通常只包含一个只接收单个入参并且返回结果为 void 的方法。
Spring 中定义了一个 Aware 接口,用于表示一个 bean 可以通过回调的方式接收 Spring 容器的通知。该接口并未定义具体的方法,而是交给子类决定,通常只包含一个只接收单个入参并且返回结果为 void 的方法。
当调用 BeanFactory.getBean 方法获取 Bean 时,如果 Bean 还未创建,则会触发 Bean 的创建,本文主要关注 Bean 的创建过程。
Bean 的创建与获取是一个比较复杂的过程,本文主要关注 bean 获取的过程。
XmlBeanFactory 可以说是 Spring 中一个最简单的 BeanFactory,通过它可以了解 Spring 的设计思路。
BeanDefinition 用来描述 spring bean,是一个接口,它的具体实现类主要有 RootBeanDefinition、ChildBeanDefinition、GenericBeanDefinition 等,分别适用于不同的场景。
前面说到 BeanDefinitionRegistry 是用来管理 BeanDefinition 的注册中心,但是还没看到 BeanDefinition 长什么样,下面就来了解下。
BeanDefinitionRegistry 是一个接口,从名字上就可以看出来,它是一个管理 BeanDefinition 的注册中心。通常情况下,BeanFactory 的具体实现类也会实现该接口,用于管理 AbstractBeanDefinition 继承结构下的 BeanDefinition 实例,例如 RootBeanDefinition 和 ChildBeanDefinition 实例。
通常情况下,建立一个 TCP 连接需要三次握手,连接建立好之后可以双向同时发送数据。正常断开一个 TCP 连接需要四次挥手。在 TCP 连接建立到断开的过程中,连接双方的状态会发生变化。
TCP 是一个面向连接的协议,它是全双工的,允许在两个方向上同时传输数据。建立一个 TCP 连接通常需要三次握手,也就是说连接的双方共需要发送三个报文段。而终止一个连接则需要经过四次握手,即发送四个报文段。