Spring Bean生命周期

Spring Bean生命周期调用 getBean(name) 方法来加载name对应的单例对象,这里只分析Spring的单例对象生命周期。转换并解析bean的名称,处理bean别名,获取到真正的bean名称;如果beanName是以&开头的,就...

Read More


ApplicationContext的初始化过程

ApplicationContext的初始化过程ClassPathXmlApplicationContextClassPathXmlApplication会接收一个applicationContext.xml(名称自定义)在类路径上描述spring be...

Read More


Spring使用TransactionalEventListener解决事务未提交读取不到数据问题

背景在项目中,往往需要执行数据库操作后,发送消息或事件来异步调用其他组件执行相应的操作,例如:用户注册后发送激活码;配置修改后发送更新事件等。但是,数据库的操作如果还未完成,此时异步调用的方法查询数据库发现没有数据,这就会出现问题。伪代码如下:void ...

Read More


「Elasticsearch」ES重建索引怎么才能做到数据无缝迁移呢?

背景众所周知,Elasticsearch是⼀个实时的分布式搜索引擎,为⽤户提供搜索服务。当我们决定存储某种数据,在创建索引的时候就需要将数据结构,即Mapping确定下来,于此同时索引的设定和很多固定配置将不能改变。那如果后续业务发生变化,需要改变数据结...

Read More


Java的动态绑定和静态绑定

引言在Java方法调用的过程中,JVM是如何知道调用的是哪个类的方法源代码呢?这就涉及到程序绑定这个概念。程序绑定指的是一个方法的调用与方法所在的类(方法主体)关联起来。对Java来说,绑定分为静态绑定和动态绑定;或者叫做前期绑定和后期绑定。静态绑定在程...

Read More