09 2024 档案
摘要:第四十九讲-事件发布器 本讲我们来学习一下事件发布器,考虑一下如我们自己定义一个事件发布器需要考虑哪些问题? 事件发布器对应的接口我们见过,即ApplicationEventMulticaster,我们一直用的是Spring提供的对该接口的实现SimpleApplicationEventMultic
阅读全文
摘要:第四十八讲-事件监听器 Spring当中有一个非常好的机制,就是事件。事件可以实现组件之间的解耦。本讲我们来看一下事件监听器的使用 1. 事件监听器实现1-实现ApplicationListener接口 如下面的代码: // 事件解耦例子 @Configuration public class A4
阅读全文
摘要:第四十七讲-Autowired注入底层 本讲我们来讲一下@Autowired注入底层 我们都知道@Autowired注入是按照类型来进行装配(注入)的,它要支持各种各样的类型,这就决定了@Autowired的实现非常的复杂。 我们来看一个例子: @Configuration public class
阅读全文
摘要:第四十六讲-@Value注入底层(第四讲延续) 如下面的代码: // 本章节作为第四讲的延续 @Configuration @SuppressWarnings("all") public class A46 { public static void main(String[] args) throw
阅读全文
摘要:第四十五讲-Spring代理的特点 本讲我们来演示一下Spring中代理类的特点。 1. 依赖注入和初始化阶段影响的是原始对象 2. 代理和目标是两个对象,两者成员变量并不公用数据 3. static方法, final方法, private 方法均无法实现增强! 换句话说,依赖注入是给原始对象进行依
阅读全文
摘要:第四十四讲-@Indexed的原理 本讲我们讲一下@Indexed注解的原理。 我们都知道,Spring中组件扫描的效率是非常低的,因为它要去遍历项目中所有的jar包,然后classes目录下所有的类文件,一个类一个类去进行分析,看看这些类上有没有标注@Component及其它的派生注解,如果有的话
阅读全文
摘要:第四十三讲 FactoryBean 从这一讲开始,我们来讲一些相对比较零散的知识, 这些知识是对之前知识的查漏补缺。 本讲我们来讲一下FactoryBean的工作机制和缺憾。 这个FactoryBean是一个工厂Bean, 它是用来产生一个产品对象的。这个FactoryBean本身是受Spring容
阅读全文
摘要:第四十二讲-条件装配底层 我们在看Spring Boot底层自动配置类的时候发现,Spring Boot底层的自动配置类用到了注解作为条件,条件成立了才会走相应的配置类,那我们也来模仿一下: 有这样一个需求,如何当前项目中引入了Druid数据库连接池,那么我们指定Condition1条件成立,并使得
阅读全文
摘要:第四十一讲-自动配置原理 1. 自动配置类原理 假设在我们编写了一些配置类(第三方提供的配置类),那么我们在我们自己的项目中怎么将这些第三方配置类整合进来呢?如下面的代码: public class A41Application { public static void main(String[]
阅读全文
摘要:第四十讲-Tomcat内嵌容器 这一讲,我们来学习一下Tomcat内嵌容器。我们首先看一下Tomcat容器的重要组成: 如上面的这张图,展示了Tomcat中一些重要的组件。 Connector:连接器,连接器决定了将来请求是以什么协议,哪个端口来连接到Tomcat服务器上 Engine:执行引擎,负
阅读全文
摘要:第三十九讲-Spring Boot启动过程分析(非常重要) 接下来我们来了解一下Spring Boot的启动流程。 Spring Boot的启动划分为两个阶段: 创建一个SpringApplication对象 调用SpringApplication对象的run方法,这其中包括12大步骤和7个事件 接
阅读全文
摘要:1.spring data elasticsearch 1.1 简介 Spring Data Elasticsearch 基于 spring data API 简化 Elasticsearch操作,将原始操作Elasticsearch的客户端API 进行封装 。 1.2 框架集成 1.2.1 依赖
阅读全文
摘要:1. elasticsearch 概述 1.1 elasticsearch简介 官网: https://www.elastic.co/ Elasticsearch (简称ES)是一个基于Lucene的分布式、RESTful 风格的全文搜索和数据分析引擎。 Elasticsearch的设计目标是使实时
阅读全文
摘要:第01章 高性能架构模式 互联网业务兴起之后,海量用户加上海量数据的特点,单个数据库服务器已经难以满足业务需要,必须考虑数据库集群的方式来提升性能。高性能数据库集群的第一种方式是“读写分离”,第二种方式是“数据库分片”。 1、读写分离架构 读写分离原理:读写分离的基本原理是将数据库读写操作分散到
阅读全文
摘要:分布式事务解决方案-Seata 1 本地事务简介 本地事务也称为数据库事务或传统事务(相对于分布式事务而言)。这一类事务是基于单个服务单一数据库访问的事务。 举例:电商系统的下单业务(生成订单、扣减库存、扣减余额) 对应的伪代码: 2 分布式事务概述 2.1 分布式事务简介 概述:分布式事务指的是组
阅读全文