自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

从入门到脱发

More Learning, More Programming, More Thinking

  • 博客(19)
  • 资源 (3)
  • 收藏
  • 关注

原创 分布式事务理论基础

关于分布式事务的一些理论基础

2022-08-11 10:27:29 251

原创 自定义SpringBootStarter

前言SpringBoot最强大的功能就是把我们常用的场景抽取成了一个个 Starter (场景启动器),我们通过引入SpringBoot为我提供的这些场景启动器,再进行少量的配置就能使用相应的功能。即使是这样,SpringBoot也不能囊括我们所有的使用场景,往往我们需要自定义 Starter,来简化我们对SpringBoot的使用。模式探索我们参考mybatis-spring-boot-starter来探索所需要的模式:pom文件如下:<dependencies> <

2022-02-12 16:40:29 735

原创 打包后的SpringBoot项目为什么可以直接运行

前言SpringBoot框架已经成为很多公司的标配,得益于其快速配置和容易上手,将程序员从繁杂的项目配置工作中解脱出来,将精力更多的集中在业务中,而深受猿媛们的喜爱。通过使用java -jar命令直接运行打包后的SpringBoot项目,不用再搭建额外的tomcat等web容器便可以启动一个web项目。不知你有没有思考过,打包后的SpringBoot项目为什么可以直接运行呢?运行命令帮我们做了什么要想搞清楚这个问题,就要看看java -jar命令到底做了哪些事情。通过阅读Oracle官方文档可以找到该

2022-02-12 14:36:03 1542

原创 SpringBoot整合xxl-job定时任务

一、克隆项目从同性社区上将项目克隆下来并导入IDEA中,克隆地址在这里二、创建控制台项目所需数据库表CREATE database if NOT EXISTS `xxl_job` default character set utf8mb4 collate utf8mb4_unicode_ci;use `xxl_job`;SET NAMES utf8mb4;CREATE TABLE `xxl_job_info` ( `id` int(11) NOT NULL AUTO_INCREMENT

2020-12-09 10:18:27 1159 1

原创 IDEA反编译插件获取源码

一、下载反编译器插件二、打开IDEA安装位置,找到反编译插件三、在插件目录中打开终端控制台,输入命令java -cp .\java-decompiler.jar org.jetbrains.java.decompiler.main.decompiler.ConsoleDecompiler -dgs=true C:\Users\Desktop\secusoft-api-sdk-java.jar C:\Users\Desktop\api-sdk-java\运行成功即可将class文件反编译为ja

2020-12-08 18:04:58 1800

原创 Nacos源码之服务注册源码解析

文章目录前言主要类图客户端逻辑服务端逻辑前言本篇就开始探索Nacos的服务注册逻辑,建议大家准备两个项目,一个是Nacos的源码项目,一个是整合Nacos注册中心的业务项目。探索过程也是分为客户端和服务端的代码解析,我觉得这样应该更利于代码跟进和理解,篇幅过长,还请耐心观看。主要类图客户端逻辑首先来看客户端,也就是我们的项目在启动时,Nacos依赖偷偷干了哪些见不得人的事情。打开项目依赖,找到引入的注册中心依赖,我们知道SpringBoot项目启动时会读取spring.factories文件进行

2020-11-27 22:35:59 1959 3

原创 SpringBoot整合MyBatisGenerator插件

SpringBoot整合MyBatisGenerator插件一、修改pom文件 <build> <plugins> <!-- mvn mybatis-generator:generate --> <plugin> <groupId>org.mybatis.generator</groupId> <artifact

2020-11-25 21:07:16 484

原创 SpringBoot整合Nacos注册中心

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar

2020-11-24 22:11:10 5713

原创 记一道阿里多线程笔试题

最近有同事收到阿里的面试邀请,因地点在杭州就先进行了一轮线上笔试,其中有这样一道题,和大家分享一下。题目是这样的:用多个线程交替打印字符,如字符串"ali",一个线程打印a,一个线程打印l,一个线程打印i , 一个线程打印空格,如:ali ali ali …代码支持拓展,能打印任意字符串"alibaba",如:alibaba alibaba alibaba alibaba …是一道经典的线程交替打印相关的题目,和网上轮流打印ABC的题目很相似,先说一下轮流打印ABC的解题思路,再回过头来看阿里的这道题

2020-05-29 17:24:21 942

原创 深入理解MySQL之SQL调优

文章目录前言一般查询优化避免全字段查询等值匹配模糊匹配分页查询优化排序分组优化关联查询优化总结前言结合MySQL中B+树的索引结构和Explain关键子给出的查询计划,我们就可以有针对性的对一些慢SQL进行优化,这篇博客就来总结一下优化思路。先声明一下表结构:CREATE TABLE `s1` ( `id` INT NOT NULL AUTO_INCREMENT, `key1` VARCHAR(100), `key2` VARCHAR(100), `key3` VARCHAR(100),

2020-05-29 15:14:50 339

原创 深入理解MySQL之Explain详解

文章目录前言示例表结构返回列总览idselect_typeSIMPLEPRIMARYUNIONUNION RESULTSUBQUERYDEPENDENT SUBQUERYDEPENDENT UNIONDERIVEDMATERIALIZEDUNCACHEABLE SUBQUERYUNCACHEABLE UNIONtabletype【重要】systemconsteq_refrefref_or_nullindex_mergeunique_subqueryindex_subqueryrangeindexALLpos

2020-05-27 15:19:57 680

原创 JVM虚拟机之调优实战

文章目录前言GC日志详解Minor GC的日志Full GC的日志调优不是一步完成的调优前的准备调优基本思路调优步骤分析GC日志定位模型前言GC日志详解调优之前首先肯定要能看懂GC的日志,通过日志收集关键的信息,然后分析我们的系统,搞清楚是参数设置的不合理,还是我们的代码写的不够优雅。上一篇已经把常用的调优命令说清楚了,这次就结合具体的例子,来体验一下调优的过程。我在本地创建了一个Web项目,打成了Jar包,然后通过命令行启动这个项目:java -XX:PermSize=256M -XX:MaxP

2020-05-24 09:43:29 625

原创 JVM虚拟机之调优命令

文章目录Jinfo查看JVM参数查看JAVA系统参数Jmap查看JAVA堆信息查看JAVA对象堆信息转储JAVA对象堆信息Jstack查看死锁信息Jstat垃圾回收统计堆内存统计新生代垃圾回收统计新生代内存统计老年代垃圾回收统计老年代内存统计元空间数据统计Jinfo查看正在运行的Java应用程序的扩展参数。>jinfo --helpUsage: jinfo [option] <pid> (to connect to running process)

2020-05-23 09:50:00 1636

原创 JVM虚拟机之内存分配与回收

文章目录前言内存分配机制对象优先在Eden区分配大对象直接进入老年代长期存活的对象将进入老年代对象动态年龄判断Minor GC后存活的对象Survivor区放不下老年代空间分配担保机制内存回收机制如何判断对象可以被回收引用计数算法可达性分析算法如何判定对象是否存活如何判断一个类是无用的类常见引用类型强引用(Strong Reference)软引用(Soft Reference)弱引用(Weak Reference)虚引用(Phantom Reference)前言Java技术体系中所提倡的自动内存管理最终

2020-05-22 22:22:31 494

原创 JVM虚拟机之垃圾收集算法和垃圾收集器

文章目录前言垃圾收集算法标记清除算法(Mark-Sweep)复制收集算法(Copy-Collection)标记整理算法(Mark-Compact)分代收集算法(Generational-Collection)垃圾收集器Serial和Serial Old收集器ParNew收集器Parallel Scavenge和Parallel Old收集器CMS收集器CMS收集器收集过程CMS收集器优缺点CMS收集器参数G1收集器G1收集器收集过程G1收集器收集分类Young GCMixed GCFull GCG1收集器特

2020-05-16 16:44:03 337

原创 Spring源码之循环依赖解析

文章目录前言示例代码源码解析前言写完了Spring比较重要和复杂的大点,打算写一些更接近实际应用和面试问的比较多的小点,结合具体问题来看看Spring源码是怎么解决的,不过由于是小点,可能不能兼顾到整体的流程,希望大家通过之前的博文,对Spring已经有了一个整体的把控,对流程也相对比较清楚,然后结合具体问题,对一些具体的点进行更深入的研究。那这篇博客就来看看Spring中比较有代表性的循环依赖问题,看看Spring是怎么解决的,Spring的很多设计和原理都可以应用到我们的实际工作中,技术需要落地,

2020-05-16 01:31:58 874 3

原创 Spring源码之事务源码解析

文章目录前言类结构体系产生过程创建过程执行过程前言猿猿们都知道,IOC和AOP很重要,事务也很重要,这篇就来解析事务的源码。类结构体系产生过程老规矩,先来看一下Spring IOC容器是怎么初始化的,再看它的创建过程,最后看执行过程。@Target(ElementType.TYPE)@Retention(RetentionPolicy.RUNTIME)@Documented...

2020-05-08 23:15:19 656

原创 Spring源码之AOP源码解析

文章目录前言基本概念横切关注点切面(Aspect)连接点(JoinPoint)切入点(PointCut)通知(Advice)目标对象(Target)织入(Weave)引入(Introduction)类结构体系示例代码产生过程创建过程执行过程前言上一篇看了Spring IOC源码,猿猿们都知道,有IOC就有AOP,那这篇就结合例子来看一下AOP的源码。基本概念AOP(Aspect Orien...

2020-05-04 16:41:54 3794

原创 Spring源码之IOC源码解析

文章目录前言类的体系结构源码解析ClassPathScanningCandidateComponentProviderClassPathBeanDefinitionScannerAnnotatedBeanDefinitionReaderAnnotationConfigUtilsBeanDefinitionReaderUtilsAbstractApplicationContextPostProces...

2020-05-03 15:55:35 3523

Transmit_5.6.3_xclient.info.dmg.zip

Transmit是一款功能齐全的FTP客户端。兼容FTP,SFTP和TLS/SSL协议,提供比Finder更加迅速的iDisk账户接入。与此同时,用户还可以通过Transmit在任意应用程序中无须下载即可实时编辑文档,方便简洁,一步到位。

2020-05-24

Medis_0.6.0_xclient.info.dmg.zip

MacOS系统使用的Redis图形化工具Medis。Medis是一款漂亮易用的Redis GUI管理应用程序。它提供了一些 redis-cli 难以实现的功能,包括创建键副本、修改列表值等,同时你还能够借助 Medis 直接读写 JSON 和 MessagePack 格式的数据,以及读写各种 Redis 配置。功能强大且小巧,下载安装即可使用。

2020-05-24

空空如也

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

TA关注的人

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