William(王明高) Blog

长风波浪会有时,直挂云帆济沧海。

Spring 生命周期之 Class 加载阶段

Class 加载阶段

1 通过 ClassLoader 进行加载 将 beanName 对应 RootBeanDefinition 通过 ClassLoader 方式解析成 Class<?>。 2 Class 加载阶段(源码分析) Class 加载阶段方法入口:AbstractBeanFactory#resolveBeanClass ... /** * Resolve the bean...

Spring 生命周期之 Bean 注册阶段

Bean 注册阶段

1 BeanDefinition 注册接口 DefaultListableBeanFactory BeanDefinitionRegistry AliasRegistry 2 Bean 注册入口(源码分析) 注册入口方法:DefaultListableBeanFact...

Spring 生命周期之 Bean 实例化阶段

Bean 实例化阶段

1 Bean 实例化阶段 我们之前了解到 BeanDefinition 里面的 Class 信息,从过去的一个文本信息变成了实在的 Class 对象,这个过程被称为 Definition 或者 Bean 的 Class Loading,也称为类加载。接下来我们会将其类加载,变成一个 Bean 实例,我们叫做实例化阶段。 2 Bean 实例化阶段可以细分为以下阶段 实例化前阶段...

Spring 生命周期之 Bean 合并阶段

Bean 合并阶段

1 BeanDefinition 合并 关于 Spring Bean 在初始化或实例化之前,有一个新的阶段就叫 BeanDefinition 合并阶段。 父子 BeanDefinitin 合并 当前 BeanFactory 查找 层次性 BeanFactory 查找 2 BeanDefinition 合并引用示例 2.1 ...

Spring 生命周期之 Bean 元信息配置阶段

Bean 元信息配置阶段

1 Bean 元信息配置阶段作用 可以通过外部化配置方式读取,将 Spring Bean 注入到 IOC 容器,从而可以通过依赖查找方式获取到 Spring Bean 对象。 2 Bean 元信息配置几种方式 PropertiesBeanDefinitionReader( Properties 文件读取) AbstractBeanDefinitionRe...

BeanFactory与FactoryBean区别

SpringIOC

1 什么是BeanFactory? BeanFactory 是 Ioc 的底层容器,更具体的说应该是 DefaultListableBeanFactory ,该类实现 AutowireCapableBeanFactory 、ListableBeanFactory 和 BeanDefinitionRegistry 接口,从而实现了Ioc的依赖注入和依赖查找。 1.1 AutowireC...

SpringIOC扫描bean定义源码解析

SpringIOC

1 分析之前的相关知识 1.1 ApplicationListener事件发布 写一个 DemoApplicationListener 实现 ApplicationListener 接口,并且把该组件加入到容器中。 ... @Component public class DemoApplicationListener implements ApplicationListen...

SpringIOC注解使用

SpringIOC

1 xml配置文件的形式VS配置类的形式 1.1 基于 xml 的形式定义 Bean 的信息 <?xml version="1.0" encoding="utf-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLS...

密码加密与微服务鉴权JWT

SpringSecurity

1 BCrypt密码加密 1.1 准备工作 任何应用考虑到安全,绝不能明文的方式保存密码。密码应该通过哈希算法进行加密。 有很多标准的算法比如SHA或者MD5,结合salt(盐)是一个不错的选择。 Spring Security 提供了BCryptPasswordEncoder类,实现Spring的PasswordEncoder接口使用BCrypt强哈希方法来加密密码。 BCryp...

消息中间件RabbitMQ

RabbitMQ

1 RabbitMQ 安装与启动 下载并安装 Eralng(以管理员身份运行安装) https://www.erlang.org/downloads 下载并安装rabbitmq https://www.rabbitmq.com/download.html 双击安装,注意不要安装在包含中文和 空格的目录下!安装后windo...