- 博客(17)
- 资源 (3)
- 收藏
- 关注
原创 Spring Boot 默认支持异步事件吗?
问题:Spring Boot 默认支持异步事件吗?在spring和Spring boot 中,SimpleApplicationEventMulticaster是ApplicationEventMulticaster的唯一实现,除了提供发布事件功能,其集成的抽象类AbstractApplicationEventMulticaster还提供了增加移除监听器的功能。同时,SimpleAp...
2019-11-24 01:33:24 441
原创 Mysql -(innodb)多版本多版本并发控制
Mysql -(innodb)多版本多版本并发控制MVCC是行级锁的一个变种,在很多情况下避免了加锁的操作,实现了非阻塞的读操作,写操作也只锁定必要的行。MVCC的实现,是通过保存数据在某个时间点的快照来实现的。InnoDB的MVCC,是通过在每行记录后面保存两个隐藏的列来实现的。其中,一列保存了行的创建时的系统版本号(system version number),一列保存了行的更新或者删除时的系统版本号。每开始一个新的事务,系统版本号都会自动递增。事务开始时刻的系统版本号会作为会作为事务的版本号,
2020-09-15 20:51:09 119
原创 Oracle笔记-SQL优化
Oracle数据库里SQL优化的终极目标就是要缩短sql语句的执行时间。要达到上述目的,我们通常只有如下三种方法可以选择。降低目标sql的资源消耗。并行执行目标sql语句。平衡系统资源的消耗。Oracle数据库里sql优化方法论包含如下核心内容:Oracle里SQL优化的本质是基于对CBO和执行计划的深刻理解。Oracle里SQL优化需要联系实际的业务。Oracle里SQL优化需要适合的使用绑定变量。降低目标sql的资源消耗“降低目标sql的资源消耗”以缩短执行时间,这是最常用的s
2020-07-12 11:11:19 131
原创 oracle的多版本控制
多版本控制oracle采用了多版本、读一致的并发模型,多版本指oracle能够同时维护多个版本(或时间点)的数据。多版本控制是并发控制的基础,oracle利用这种机制提供了以下特性:读一致查询:对于一个给定的时间点(point in time),查询会产生一样的结果。非阻塞查询:查询的会话不会被写入的会话阻塞。oracle利用多版本控制得到结果(查询开始时时间点的结果),在查询的过程中,不需要对任何数据加锁。oracle使用事务机制,在修改数据时,生成redo和undo日志。redo中的记录用于
2020-06-10 21:47:34 568
原创 centos中rabbitmq3.7.18安装
[官方网站]https://www.rabbitmq.com/RabbitMQ是实现了高级消息队列协议(AMQP)的开源消息代理软件(亦称面向消息的中间件),其服务端是用Erlang语言编写的,需要版本对应,关联版本地址https://www.rabbitmq.com/which-erlang.html##安装erlang安装erlangcd /usr/local/mkdir erlang##下载erlangwget https://github.com/rabbitmq/erlang-
2020-06-06 20:27:30 945
原创 JVM笔记
运行时数据区域方法区、虚拟机栈、本地方法栈、堆、程序计数器。方法区:各个线程的共享区域,用于存储已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码等信息。程序计数器:线程私有的内存区域,是当前线程所执行的字节码的行号指示器。虚拟机栈: 线程私有的内存区域,生命周期和线程相同,描述了java方法执行的内存模型:每个方法被执行时都会创建一个栈帧(Stack Frame)用于存储局部变量表、操作数栈、动态链接、方法出口等信息。局部变量表存放了编译期可知的各种基本数据类型、对象引
2020-06-05 19:51:11 110
原创 oracle笔记-常用数据类型
表oracle支持多种表类型:堆组织表(heap prganized,默认的“普通”表):数据在其中以堆的方法管理。增加数据时,会找到并使用段中第一个能放下此数据的自由空间。索引组织表(index organized table):按索引结构存储。IOT对信息检索,空间数据和OLAP应用特别有用。索引聚簇表(index clustered):聚簇是指一个或多个表组成的组,这些表中的数据物理地址存储在相同的数据块上,有相同聚簇键值的所有物理行存储在相邻的位置。索引聚簇表的优点是当平凡访问以聚簇键连接
2020-06-04 16:16:35 147
原创 oracle笔记-锁
在oracle中主要有3类锁DML锁:一般指select,insert,update,merge和delete语句。DML锁机制允许并发执行修改。例如,DML锁可能是特定数据行的锁,或者是锁定表中所有行的锁。DDL锁:如create和alter语句等。DDL锁可以保护对象的结构定义。内部锁和闩:oracle使用这些锁来保护其内部数据结构。例如,oracle解析一个查询并生成优化的查询计划时,它会把库缓存闩上,将查询计划放在那里,以供其他回话使用。DML锁DML锁用于确保一次只有一个
2020-05-23 22:28:34 165
原创 MyBatis 插件原理与自定义插件
MyBatis 通过提供插件机制,让我们可以根据自己的需要去增强 MyBatis 的功能。mybatis可拦截的相关对象及方法插件调用流程如下图:下面我们利用其插件机制实现替换其sql参数为真实的值插件。package com.march.common.mybatis.plugin;import org.apache.ibatis.cache.CacheKey;import org.apache.ibatis.executor.Executor;import org.apache.ibat
2020-05-22 20:17:56 174 1
原创 TCP数据传输机制
TCP数据传输机制TCP的段结构 源端口目标端口 序列号 确认号 头长度标志窗口 校验和 紧急数据指针 选项(可变长度) 数据源端口:16 byte,源节点进程端口目标端口:16 byte,目标节点端口序列号: 32 byte,TCP对字节流中的每个字节都编号。假设每个数据段包含1000个数据字节,第一个字节的编号为X,则对于字节流中各段的第一个字节的序列号分别为:X,X + 1000,X + 2000等。
2020-05-21 21:47:48 927
原创 使用@Enable驱动实现mybatis多数据配置
在Spring中,@Enable驱动基于@Import实现,通过@Import装载导入类,将其定义为Spring Bean。而导入类主要@Configuration标注的类,接口ImportBeanDefinitionRegistrar以及ImportSelector的实现三种实现形式。以下代码基于此实现mybatis多数据配置。POM文件依赖<parent> <groupId>org.springframework.boot</groupId&
2020-05-19 12:41:04 528
原创 Spring Boot运行阶段
运行阶段是Spring Boot的核心过程,主要围绕public ConfigurableApplicationContext run(String... args) 方法展开,该过程结合初始化阶段完成的状态,进一步完善了运行时所需要的资源,随后启动ApplicationContext上下文,整个流程可分为上下文启动前阶段,上下文装备阶段,上下文启动阶段和上下文启动后阶段。在此期间,触发sprin...
2020-01-05 17:52:51 103
原创 centos中gitlab私服搭建,卸载与常见问题
添加GitLab镜像源并安装gitlab服务器安装并配置必要的依赖关系在CentOS系统上安装所需的依赖:ssh,防火墙,postfix(用于邮件通知) ,wget,以下这些命令也会打开系统防火墙中的HTTP和SSH端口访问。可用内存建议2G 安装ssh sudo yum install -y curl policycoreutils-python openssh-s...
2019-12-23 14:23:42 527
原创 Spring Boot初始化阶段
Spring Boot初始化阶段通常情况下,我们启动一个SpringBoot应用,会以下面的方式启动:public static void main(String[] args) { SpringApplication.run(MyBootstrap.class, args);}除了以上方式外,Spring boot还提供了SpringApplicationBuilder的...
2019-11-26 20:22:55 180
原创 spring springBoot事件
Application context生命周期事件 public class SpringEventListenerBootstrap { public static void main(String[] args) { new SpringApplicationBuilder(Object.class) .list...
2019-11-20 22:16:27 406
原创 oracle笔记-执行计划
sqlplus sys/admin as sysdba;--清空缓存alter system flush [SHARED_POOL/BUFFER_CACHE/GLOBAL CONTEXT]---------------------使用10046事件查看真实执行计划 start-------------在当前session中使用oradebug命令oradebug setmypid;...
2019-11-16 23:34:06 113
multiple-datasource-app.zip
2020-05-19
multiple-datasource-app.zip
2020-05-19
zip4j demo + jar
2013-09-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人