自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

靖节先生的博客

Don’t rush and never settle. If it’s meant to be, it will be.

  • 博客(304)
  • 资源 (1)
  • 收藏
  • 关注

原创 Spring框架详解New

Spring框架详解New1. Spring框架概述2. Spring框架特点3. Spring框架优缺点3.1 Spring框架优点3.2 Spring框架缺点4. Spring框架设计模式5. Spring IoC5.1 Spring IoC概念5.2 Spring BeanFactory5.3 Spring ApplicationContext5.4 BeanFactory 和 ApplicationContext的区别5.5 Spring DI 依赖注入5.6 WebApplication 体系架构

2022-02-11 15:17:39 1407

原创 SpringCloud分布式架构详解

SpringCloud系统架构详解1. SpringCloud概述1.1 SpringCloud概述1.2 SpringBoot与SpringCloud依赖关系1.3 SpringCloud总体架构及组件说明2. Spring Cloud Netflix2.1 Eureka服务注册与发现2.2 Zookeeper服务注册与发现2.3 Consul服务注册与发现2.4 Ribbon负载均衡服务调用2.5 OpenFeign服务接口调用2.6 Hystrix断路器2.7 Zuul服务网关2.8 Gateway新

2021-12-17 12:45:00 3995 1

原创 SpringCloud分布式架构演进

SpringCloud总体架构及演变1. 系统架构演进1.1 单体应用架构1.2 垂直应用架构1.3 SOA架构1.4 微服务架构1.5 SOA与微服务的关系2. 分布式核心功能2.1 远程调用2.2. CAP原理3. SpringCloud三种架构方案3.1 Spring Boot + Spring Cloud Netflix3.2 Spring Boot + Spring Cloud Alibaba3.3 Spring Boot + Dubbo + Zookeeper1. 系统架构演进1.1 单体应

2021-12-14 11:15:22 3021 4

原创 Java设计模式详解

Java设计模式详解1. 设计模式目的2. 设计模式原则3. 设计模式概述4. 设计模式分类5. 设计模式详解1. 设计模式目的编写软件过程中, 程序员面临着来自 耦合性, 内聚性以及可维护性, 可扩展性, 重用性, 灵活性 。1.代码重用性 (即: 相同功能的代码, 不用多次编写)2.可读性 (即: 编程规范性, 便于其他程序员的阅读和理解)3.可扩展性 (即: 当需要增加新的功能时, 非常的方便, 称为可维护)4.可靠性 (即: 当我们增加新的功能后, 对原来的功能没有影响)5.使程序呈现

2021-11-15 10:15:45 1560

原创 Github域名解析连接慢问题

Github域名解析连接慢问题1. Github访问慢问题2. Github连接解决方案2.1 使用 Gitee 的镜像仓库2.2 配置本地的 hosts 文件3. DNS域名解析分析3.1 根域名服务器3.1 顶级域名服务器3.1 域名解析流程1. Github访问慢问题Github 作为全球最大的代码托管平台和开源社区,因为它的服务器在国外,所以一直存在访问速度过慢、甚至有时候超时无法访问的问题。2. Github连接解决方案2.1 使用 Gitee 的镜像仓库大家都知道国内正在积极推动开源社

2021-11-12 11:09:42 3328

原创 Java对接微信开放平台详解

Java对接微信开放平台详解1.开放平台概述1.1开放平台定义1.2 开放平台概述2.开放平台配置2.1 配置流程说明2.2 配置具体操作2.3 授权序列图2.4 项目对接流程3.项目实现3.1 创建项目3.2 项目依赖3.3 项目配置3.4 加解密工具3.5 代码实现4.验证测试4.1 项目测试流程4.2 启动验证票据服务4.3 获取验证票据4.4获取component_access_token4.5获取pre_auth_code4.6获取链接,手动拼接html的链接4.7扫码授权4.8授权成功跳转成功页

2021-10-27 14:33:56 3630 1

原创 前端框架React,Angular和Vue详解

前端框架React,Angular和Vue详解1. 三种架构概述2. React简介2.1 React概述2.2 React起源2.3 React特点3. Vue概述3.1 Vue简介3.2 Vue起源3.3 Vue特点4. Angular概述4.1 Angular简介4.2 Angular起源4.3 Angular特点5. 三种框架对比分析5.1 核心发展5.2 灵活性5.3 性能5.4 对比总结1. 三种架构概述React,Angular,Vue是目前比较主流的三种前端web应用构建工具。Angu

2021-09-04 08:45:23 1813 2

原创 系统需求分析与领域建模

架构设计 系统需求的分析与设计1. 软件开发概述2. 系统需求分析总体过程3. 系统需求分析案例3.1 领域划分3.2 业务用例1. 软件开发概述常见软件开发流程需求阶段需求调研 - 产出:业务需求说明书需求分析 - 产出:需求分析说明出,可行性分析报告业务建模 - 产出:业务用例(用例图)系统建模 - 产出:系统用例(时序图)数据建模 - 产出:数据库设计(ER图)设计阶段架构设计-网络拓扑图领域划分-划分边界接口拆分-接口文档,sdk概要设计详细设计实现阶段项

2021-07-09 23:07:38 3128 4

原创 DDD领域驱动设计详解

DDD领域驱动设计1. 领域驱动设计1.1 什么是领域驱动设计1.2 为什么用领域驱动设计2. DDD核心知识体系2.1 DDD核心概念2.2 DDD战略战术设计2.2.1 DDD战略设计2.2.1 DDD战术设计3. DDD微服务架构模型3.1 基本架构3.1.1 DDD分层架构3.1.1 六边形理论3.1.1 CQRS架构设计3.2 代码结构3.3 服务调用1. 领域驱动设计1.1 什么是领域驱动设计领域驱动设计(Domain Driven Design) 是一种从系统分析到软件建模的一套方法论

2021-06-04 16:55:38 56617 11

原创 SonarQube跳过指定代码检查方法

现在很多项目里使用Sonarqube管理代码质量,团队一般也会有硬性的指标。如果有些代码虽然不合规范,但是在实际环境中不得不这样写,那么我们为了降低issue的数量,可以让Sonar跳过这一段的检测。

2024-03-11 09:34:41 654 1

原创 JMeter压测异常BindException:Address already in use:conned

执行JMeter时,当并发线程数较高时(尤其是测试机器还存在连接其他服务器的socket),运行一会就会产生address already in use的异常,这是因为Windows中TCP客户端和服务器连接时,客户端必须分配一个动态端口,默认情况下这个动态端口的分配范围为 1024-5000 ,也就是说默认情况下,客户端最多可以同时发起3977 个Socket 连接,如果线程数过多,导致了我们在短时间内发起大量请求的时候将端口占满了且无法及时回收,导致客户端的地址就会不够用,就会引发该异常。

2024-03-05 14:55:42 553

原创 JProfiler详解 JVM性能监测内存泄露分析工具

JProfiler是一款业界领先的Java性能分析工具,由ej-technologies公司开发,专门设计用于分析和优化Java和JVM应用程序的性能。它可以无缝集成到多种开发环境如IntelliJ IDEA、Eclipse等,并支持对本地和远程应用程序的实时或离线性能分析。

2024-03-05 14:10:03 846

原创 java切面实现权限控制

【代码】java切面实现权限控制。

2024-02-26 10:16:04 398

原创 Spring Event详解

Spring Event是Spring框架内建的一种发布/订阅(Publish-Subscribe)模式的实现,它允许应用内部不同组件之间通过事件进行通信。当某个特定事件发生时,系统中对这类事件感兴趣的监听器可以接收到通知并执行相应操作。

2024-02-18 14:57:47 1084

原创 mysql循环kill掉user数据库下的所有连接

在JavaScript中,要实现爬虫抓取动态滚动条加载的内容(即滚动到页面底部时自动加载更多内容的网页),通常需要模拟用户滚动行为,并等待页面内容动态加载完成。这段代码首先使用Puppeteer启动一个浏览器实例,然后打开指定URL的页面,并通过模拟滚动到底部以及检查特定的加载更多内容的标志来决定是否继续滚动。请注意,针对不同的网站,可能需要根据其具体的滚动加载机制和内容加载标识进行相应的调整。同时,确保遵守相关法律法规和网站的服务条款,不要滥用此类技术对不允许爬取的网站进行爬虫操作。

2024-01-16 20:14:16 578

原创 JavaScript中要实现爬虫抓取动态滚动条加载的内容Puppeteer

在JavaScript中,要实现爬虫抓取动态滚动条加载的内容(即滚动到页面底部时自动加载更多内容的网页),通常需要模拟用户滚动行为,并等待页面内容动态加载完成。这段代码首先使用Puppeteer启动一个浏览器实例,然后打开指定URL的页面,并通过模拟滚动到底部以及检查特定的加载更多内容的标志来决定是否继续滚动。请注意,针对不同的网站,可能需要根据其具体的滚动加载机制和内容加载标识进行相应的调整。同时,确保遵守相关法律法规和网站的服务条款,不要滥用此类技术对不允许爬取的网站进行爬虫操作。

2024-01-10 19:51:24 719

原创 git从主仓库同步到fork仓库

执行路径:项目右键 -> Git ->Repository -> Fetch。左下角选择远程仓库分支 -> Merge into Current。通过Merge Request提交申请MR到远程,审批合并。方式一:使用idea将远程仓库merg到本地仓库。方式一:idea fetch重新拉取最新地址。方式二:更新主库命令方式。方式一:通过git命令。方式二:通过git页面。方式二:通过命令方式。

2023-07-28 10:00:04 1308

原创 java异常处理在try catch中使用Throwable和Exception的区别

Thowable捕捉到了实际上所有的东西,甚至是threaddeath,默认情况下,threaddeath会被抛出,以阻止线程从现在被弃用的Thread.stop()方法中退出。通常不应该这样做,除非在一个线程的最高"catch all"级别,在这个级别上您想要记录日志,或者完全处理所有可能出错的事情。在框架类型的应用程序(例如,应用程序服务器或测试框架)中,它更为典型,在这种应用程序中,它可以运行未知代码,并且不应受到该代码出错的任何影响,尽可能多。Exception是程序性可恢复的。

2023-07-20 18:04:01 1076

原创 Http请求异常Required request body is missing

get请求是没有请求体body的,而注解@RequestBody是从请求体读取信息的,也就是说使用@RequestBody注解不支持get请求。2.代码中我将@RequsetBody注解去掉,也是可以将数据封入对象的(未验证)1.将GetMapping改为PostMapping请求(验证可以)

2023-04-26 15:30:32 2157 1

原创 easy-jenkins自动化部署工具

easy-jenkins是一款对vue和jar的部署工具,操作简单,实行一键部署,内部结构采用流水线形式架构,每次部署,时时提供部署过程,部署记录,界面友好简洁,使用方便,符合用户常规操作,easy-jenkins面向分支形式,无需登录,默认分支为jenkins,每个分支可以配置多个数据源,切换不同分支可以管理不同数据源,easy-jenkins采用本地存储的结构无需配置数据库,简单易上手。

2023-04-23 15:25:07 591

原创 git 清除账号密码缓存

清除git缓存中的用户名的密码。

2023-02-24 21:24:42 4736

原创 Java Bean转Map问题总结

Java Bean转map过程中,一般借助于三方工具进行转换,但是第三方工具在转换过程中会存在对象属性类型或者名称不一致的问题,这里进行简单梳理几种方式对比分析,总结。Java Bean对象转Map,不同工具存在不同的问题:fastjson,gson转换类型不对。commonsbeanutils,cglib,转换的属性名称不对。dubbo,hutool转换类型与名称都没问题。(推荐)。1.fastjson对象转Map,类型转换错误,通过debug可以看到。

2023-01-08 16:48:53 6023

原创 Java对象禁止使用基本类型详解

Java对象禁止使用基本类型详解

2023-01-08 09:22:10 658

原创 微服务 分布式配置中心Apollo详解

微服务 分布式配置中心Apollo详解

2023-01-07 12:24:12 3092

原创 idea插件代码生成工具EasyCode

EasyCode是一款根据idea数据库连接自动生成Java代码,从controller,service,dao,mapper一整套的代码的idea插件。配置路径:File --> Settings --> Other Settings --> EasyCode – > Template Settings。1.在线安装:setting-plugin,搜索easycode,安装重启。首先下载安装easycode插件,idea分为在线安装与离线安装。通过idea离线安装该压缩包。

2023-01-03 10:49:58 6551

原创 tree命令生成目录树

在项目设计文档时经常需要对项目结构进行说明,如果能生成目录树结构则是对项目结构的很好的说明,所以经过实践验证,特此记录,与之共飨。windows环境:win + R ,输入cmd进入命令窗口,或者idea中通过Terminal进入。生成不带目录下文件,只显示目录:tree > maven-fremawork-tree.md。/f 显示所有目录及目录下的所有文件,省略时,只显示目录,不显示目录下的文件。生成带有目录及目录下文件的属性结构:tree /f。mac下使用brew包管理工具安装tree工具,

2022-12-25 10:54:42 2173

原创 MySQL更新一条已经存在的sql语句是怎么执行的

今天看到一个有意思的问题,就是Mysql更新一条已经存在的语句是怎么执行的,结果显示,匹配(rows matched)了一行,修改(Changed)了0行。,实际上执行完成sql会提示Affected rows: 0,是的,你没看错更新0行,那这就有意思了,mysql到底是更新了没有呢,具体是在哪一层更新的呢?根据之前写的文章《MySQL是如何执行一条SQL更新语句》知道更新sql语句是在server层先读取原来值,然后调用数据库引擎,最后由数据库引擎执行完成返回给server层,根据以上分析有三种情况。仅

2022-12-04 17:26:43 2077

原创 MySQL统计函数count详解

@count() 是一个聚合函数,返回指定匹配条件的行数。开发中常用来统计表中数据,全部数据,不为null数据,或者去重数据。1.函数说明count(1):统计所有的记录(包括null)。count(*):统计所有的记录(包括null)。count(字段):统计该"字段"不为null的记录。count(distinct 字段):统计该"字段"去重且不为null的记录。count(1)中的1并不是表示第一个字段,而是表示一个固定值。其实就可以想成表中有这么一个字段,这个字段就是固定值1,coun

2022-12-03 20:39:36 36405 1

原创 Lombok详解

Project Lombok是一个java库,它可以自动插入到您的编辑器和构建工具中,为您的java增添趣味。永远不要再写另一个getter或equals方法了,只要有一个注释,你的类就有了一个功能齐全的构建器,自动化你的日志变量,等等。

2022-11-28 17:00:05 2393

原创 MySQL数据库表空间回收问题

如果我们把表B作为临时表,数据从表A导入表B的操作完成后,用表B替换A,从效果上看,就起到了收缩表A空间的作用。而重建表,就可以达到这样的目的。显然,花时间最多的步骤是往临时表插入数据的过程,如果在这个过程中,有新的数据要写入到表A的话,就会造成数据丢失。可以看到,与图3过程的不同之处在于,由于日志文件记录和重放操作这个功能的存在,这个方案在重建表的过程中,允许对表A做增删改操作。但是,我们遇到的更多的删除数据的场景是删除某些行,这时就遇到了我们文章开头的问题:表中的数据被删除了,但是表空间却没有被回收。

2022-11-26 18:06:13 2061

原创 MySQL批量入库的几种方式详解

最近压测一款mysql持久化工具,目前市面上mysql批量入库方式有很多,这里分别对常用的几种方式进行压测对比分析,比如列举了hutool工具封装的jdbc方式,jdbc直接执行与批量执行的方式,以及常用的mybatis方式。采用hutool批量入库, 数据量:10000, 耗时:7.38秒, 吞吐量:1357(次之)采用JDBC直接处理, 数据量:10000, 耗时:6.689秒, 吞吐量:1494.9(其次)

2022-11-25 19:53:30 2436

原创 Java诊断工具arthas详解

Arthas 是一款线上监控诊断产品,通过全局视角实时查看应用 load、内存、gc、线程的状态信息,并能在不修改应用代码的情况下,对业务问题进行诊断,包括查看方法调用的出入参、异常,监测方法执行耗时,类加载信息等,大大提升线上问题排查效率。

2022-11-21 22:12:21 653

原创 shell脚本批量执行指定路径下sql脚本

Linux环境下通过shell脚本批量执行指定目录下所有sql语句,用来建表建库,初始化项目sql等。方式二只需要指定sql路径即可,通过shell遍历,相对方便。方式一需要手动指定sql全路径名称,相对比较麻烦,仅供参考。创建contract_ddl.sql。创建template_ddl.sql。

2022-11-21 11:08:14 2876

原创 MySQL InnoDB刷脏页详解

而MySQL中的一个机制,可能让你的查询会更慢:在准备刷一个脏页的时候,如果这个数据页旁边的数据页刚好是脏页,就会把这个“邻居”也带着一起刷掉;平时的工作中,不知道你有没有遇到过这样的场景,一条SQL语句,正常执行的时候特别快,但是有时也不知道怎么回事,它就会变得特别慢,并且这样的场景很难复现,它不只随机,而且持续时间还很短。当然,MySQL“这家酒店”的生意好起来可是会很快就能把粉板记满的,所以“掌柜”要合理地安排时间,即使是“生意好”的时候,也要见缝插针地找时间,只要有机会就刷一点“脏页”。

2022-11-20 14:41:23 1309

原创 MySQL字符串前缀索引详解

MySQL字符串前缀索引与全部索引的区别

2022-11-20 10:00:32 2770

原创 maven assembly打包生成Java应用启动脚本bat和sh

springboot应用通过maven插件appassembler-maven-plugi生成启动脚本bat和sh。根据官网介绍,这个插件主要用于生成启动 java应用程序的脚本,能将项目依赖jar能够打包目录中,并且它们加入启动脚本类路径中。主要命令。

2022-11-17 19:14:02 1993

原创 MySQL优化器选错索引情况

MySQL优化器选错索引情况

2022-11-13 16:46:07 312

原创 MySQL普通索引与唯一索引

MySQL普通索引与唯一索引

2022-11-13 10:32:45 1607 1

原创 MySQL事务隔离与行锁的关系

MySQL事务隔离与行锁的关系

2022-11-12 17:57:53 713

原创 linux shell脚本执行sql语句建表建库

Linux 执行sql脚本创建数据库表

2022-11-11 17:50:17 2490

阿里巴巴《Java开发手册》泰山版

《Java 开发手册》是阿里巴巴集团技术团队的集体智慧结晶和经验总结,经历了多次大规模一线实战的检验及不断完善,公开到业界后,众多社区开发者踊跃参与,共同打磨完善,系统化地整理成册,当前的版本是泰山版。现代软件行业的高速发展对开发者的综合素质要求越来越高,因为不仅是编程知识点,其它维度的知识点也会影响到软件的最终交付质量。比如:数据库的表结构和索引设计缺陷可能带来软件上的架构缺陷或性能风险;工程结构混乱导致后续维护艰难;没有鉴权的漏洞代码易被黑客攻击等等。所以本手册以 Java 开发者为中心视角,划分为编程规约、异常日志、单元测试、安全规约、MySQL 数据库、工程结构、设计规约七个维度,再根据内容特征,细分成若干二级子目录。另外,依据约束力强弱及故障敏感性,规约依次分为强制、推荐、参考三大类。在延伸信息中,“说明”对规约做了适当扩展和解释;“正例”提倡什么样的编码和实现方式;“反例”说明需要提防的雷区,以及真实的错误案例。

2023-01-08

escape.sql

escape.sql

2021-02-23

空空如也

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

TA关注的人

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