自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 资源 (3)
  • 收藏
  • 关注

原创 Spring Boot 默认支持异步事件吗?

问题:Spring Boot 默认支持异步事件吗?在spring和Spring boot 中,SimpleApplicationEventMulticaster是ApplicationEventMulticaster的唯一实现,除了提供发布事件功能,其集成的抽象类AbstractApplicationEventMulticaster还提供了增加移除监听器的功能。同时,SimpleAp...

2019-11-24 01:33:24 454

原创 Mysql -(innodb)多版本多版本并发控制

Mysql -(innodb)多版本多版本并发控制MVCC是行级锁的一个变种,在很多情况下避免了加锁的操作,实现了非阻塞的读操作,写操作也只锁定必要的行。MVCC的实现,是通过保存数据在某个时间点的快照来实现的。InnoDB的MVCC,是通过在每行记录后面保存两个隐藏的列来实现的。其中,一列保存了行的创建时的系统版本号(system version number),一列保存了行的更新或者删除时的系统版本号。每开始一个新的事务,系统版本号都会自动递增。事务开始时刻的系统版本号会作为会作为事务的版本号,

2020-09-15 20:51:09 126

原创 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 136

原创 oracle的多版本控制

多版本控制oracle采用了多版本、读一致的并发模型,多版本指oracle能够同时维护多个版本(或时间点)的数据。多版本控制是并发控制的基础,oracle利用这种机制提供了以下特性:读一致查询:对于一个给定的时间点(point in time),查询会产生一样的结果。非阻塞查询:查询的会话不会被写入的会话阻塞。oracle利用多版本控制得到结果(查询开始时时间点的结果),在查询的过程中,不需要对任何数据加锁。oracle使用事务机制,在修改数据时,生成redo和undo日志。redo中的记录用于

2020-06-10 21:47:34 613

原创 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 955

原创 JVM笔记

运行时数据区域方法区、虚拟机栈、本地方法栈、堆、程序计数器。方法区:各个线程的共享区域,用于存储已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码等信息。程序计数器:线程私有的内存区域,是当前线程所执行的字节码的行号指示器。虚拟机栈: 线程私有的内存区域,生命周期和线程相同,描述了java方法执行的内存模型:每个方法被执行时都会创建一个栈帧(Stack Frame)用于存储局部变量表、操作数栈、动态链接、方法出口等信息。局部变量表存放了编译期可知的各种基本数据类型、对象引

2020-06-05 19:51:11 119

原创 oracle笔记-常用数据类型

表oracle支持多种表类型:堆组织表(heap prganized,默认的“普通”表):数据在其中以堆的方法管理。增加数据时,会找到并使用段中第一个能放下此数据的自由空间。索引组织表(index organized table):按索引结构存储。IOT对信息检索,空间数据和OLAP应用特别有用。索引聚簇表(index clustered):聚簇是指一个或多个表组成的组,这些表中的数据物理地址存储在相同的数据块上,有相同聚簇键值的所有物理行存储在相邻的位置。索引聚簇表的优点是当平凡访问以聚簇键连接

2020-06-04 16:16:35 152

原创 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 206

原创 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 181 1

原创 TCP数据传输机制

TCP数据传输机制TCP的段结构 源端口目标端口 序列号 确认号 头长度标志窗口 校验和 紧急数据指针 选项(可变长度) 数据源端口:16 byte,源节点进程端口目标端口:16 byte,目标节点端口序列号: 32 byte,TCP对字节流中的每个字节都编号。假设每个数据段包含1000个数据字节,第一个字节的编号为X,则对于字节流中各段的第一个字节的序列号分别为:X,X + 1000,X + 2000等。

2020-05-21 21:47:48 947

原创 一次普通的http请求

一次普通的http请求,除了3次握手4次挥手之外,还经历了什么呢?三次握手过程如下图

2020-05-20 21:11:31 187

原创 使用@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 543

原创 Spring Boot运行阶段

运行阶段是Spring Boot的核心过程,主要围绕public ConfigurableApplicationContext run(String... args) 方法展开,该过程结合初始化阶段完成的状态,进一步完善了运行时所需要的资源,随后启动ApplicationContext上下文,整个流程可分为上下文启动前阶段,上下文装备阶段,上下文启动阶段和上下文启动后阶段。在此期间,触发sprin...

2020-01-05 17:52:51 109

原创 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 538

原创 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 184

原创 spring springBoot事件

Application context生命周期事件 public class SpringEventListenerBootstrap { public static void main(String[] args) { new SpringApplicationBuilder(Object.class) .list...

2019-11-20 22:16:27 431

原创 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 116

multiple-datasource-app.zip

基于@Enable驱动的spring boot多数据源配置,主要运用了spring的AbstractRoutingDataSource和aop来实现

2020-05-19

multiple-datasource-app.zip

基于Enable驱动的spring boot多数据源配置的实现,主要运用了spring的AbstractRoutingDataSource和aop

2020-05-19

zip4j demo + jar

zip4j 压缩加密解密 /** * 使用zip4j执行带密码的压缩 * * @param srcFile * 需要压缩文件的目录 * @param destfile * 压缩后的文件名 * @param pwd * 压缩时的密码 * @throws Exception */ public static void encryptCompressZip(String srcFile, String destfile, String pwd) { ZipOutputStream outputStream = null; File srcF = new File(srcFile); if( !srcF.exists()) { return; } File f = new File(destfile); try { if (!f.exists() && f.isFile()) { f.mkdirs(); } outputStream = new ZipOutputStream(new FileOutputStream(new File(destfile))); ZipParameters parameters = setZipParameters(pwd); directoryZip(outputStream,srcF,destfile,parameters); outputStream.finish(); } catch (IOException e) { e.printStackTrace(); } catch (ZipException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } finally { if (outputStream != null) { try { outputStream.close(); } catch (IOException e) { e.printStackTrace(); } } } }

2013-09-26

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除