Spring Boot 异步调用
在日常开发中,我们的逻辑都是同步调用,顺序执行。在一些场景下,我们会希望异步调用,将和主线程关联度低的逻辑异步调用,以实现让主线程更快的执行完成,提升性能。例如说:记录用户访问日志到数据库,记录管理员操作日志到数据库中。
在日常开发中,我们的逻辑都是同步调用,顺序执行。在一些场景下,我们会希望异步调用,将和主线程关联度低的逻辑异步调用,以实现让主线程更快的执行完成,提升性能。例如说:记录用户访问日志到数据库,记录管理员操作日志到数据库中。
过滤器:依赖于servlet容器。在实现上基于函数回调,可以对几乎所有请求进行过滤,但是缺点是一个过滤器实例只能在容器初始化时调用一次。使用过滤器的目的是用来做一些过滤操作,获取我们想要获取的数据,比如:在过滤器中修改字符编码;在过滤器中修改HttpServletRequest的一些参数,包括:过滤低俗文字、危险字符等
过滤器的运行是依赖于servlet容器的,跟springmvc等框架并没有关系
面向方面编程 (AOP) 通过提供另一种思考程序结构的方式来补充面向对象编程 (OOP)。OOP 中模块化的关键单元是类,而 AOP 中模块化的单元是方面。方面支持跨多种类型和对象的关注点(例如事务管理)的模块化。
AOP (Aspect-Oriented Programming)是一种通过允许跨领域关注点分离来提高模块化的编程模式。
AOP 在实际项目中运用的场景主要有 权限管理(Authority Management)、事务管理(Transaction Management)、安全管理(Security)、日志管理(Logging)和调试管理(Debugging) 等。
控制反转(英语:Inversion of Control,缩写为IoC),是面向对象编程中的一种设计原则,可以用来减低计算机代码之间的耦合度。其中最常见的方式叫做依赖注入(Dependency Injection,简称DI),还有一种方式叫“依赖查找”(Dependency Lookup)。
@Transactional 是 Spring 中声明式事务管理的注解配置方式,@Transactional 注解可以帮助我们把事务开启、提交或者回滚的操作,通过aop的方式进行管理。
page 表示磁盘(数据文件)和内存( 缓冲池 buffer pool) 之间每一次传输的数据量基本单位。一页可以包含一行或多行,具体取决于每行中的数据量。如果一行不完全适合单个页面,则设置额外的指针样式数据结构,以便可以将有关该行的信息存储在一个页面中。
在每页中容纳更多数据的一种方法是使用 压缩行格式(compressed row format)。对于使用 BLOBs 或大文本字段的表, 紧凑行格式(compact row format) 允许将这些大列与行的其余部分分开存储,从而减少不引用这些列的查询的 I/O 开销和内存使用。
当 InnoDB 批量读取或写入页面集以增加 I/O 吞吐量时,它一次读取或写入一个区(extent)。
MySQL 实例中的所有InnoDB磁盘数据结构共享相同的页面大小。
row 由一组列(columns)定义的逻辑数据结构。一组行(rows)组成一个表。在 InnoDB 数据文件中,每一页可以包含一行或多行。
尽管 InnoDB 使用术语行格式是为了与 MySQL 语法保持一致,但行格式是每个表的属性,适用于该表中的所有行。
InnoDB是一种兼顾高可靠性和高性能的通用存储引擎。在 MySQL 8.0 中,InnoDB是默认的 MySQL 存储引擎。除非您配置了不同的默认存储引擎,否则发出 CREATE TABLE 不带 ENGINE 子句的语句会创建一个InnoDB表。