自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

小大虽差,各任其性,苟当其分,逍遥一也。

  • 博客(739)
  • 收藏
  • 关注

原创 如何从零手写实现数据库连接池 dbcp?

*** 池化的连接池/*** 是否繁忙* @return 状态/*** 设置状态* @param busy 状态/*** 获取真正的连接* @return 连接/*** 设置连接信息* @param connection 连接信息/*** 设置对应的数据源* @param dataSource 数据源/*** 获取对应的数据源信息* @return 数据源这里我们直接继承了 Connection 接口,实现时全部对 Connection 做一个代理。

2024-03-13 11:09:14 2317

原创 sensitive-word 敏感词开源工具使用入门

有时候我们希望将敏感词的加载设计成动态的,比如控台修改,然后可以实时生效。v0.0.13 支持了这种特性。简化伪代码如下,数据的源头为数据库。MyDdWordAllow 和 MyDdWordDeny 是基于数据库为源头的自定义实现类。@Autowired@Autowired/*** 初始化引导类* @return 初始化引导类*/@Bean// 各种其他配置.init();敏感词库的初始化较为耗时,建议程序启动时做一次 init 初始化。

2023-12-18 15:37:03 2468

原创 面试官:你们项目中是怎么做防重复提交的?

面试经历记得刚毕业的时候,有一次去参加面试。上来面试官问我:“你们项目中是怎么做防重复提交的?”一开始听到这个问题是蒙圈的,支支吾吾半天没回答出来。然后面试官直接来一道算法题,喜闻乐见地面试失败。多年过去,虽然很少接触到控台应用,但是近期对于防止重复提交却有了一点自己的心得。在这里分享给大家,希望你工作或者面试中遇到类似的问题时,对你有所帮助。本文将从以下几个方面展开:(1)重复提交产生的原因(2)什么是幂等性(3)针对重复提交,前后端的解决方案(4)如果实现一个防重复提交工具产生原

2020-08-05 22:09:23 5024

原创 java 导出 excel 最佳实践,java 大文件 excel 避免OOM(内存溢出) excel 工具框架

产品需求产品经理需要导出一个页面的所有的信息到 EXCEL 文件。需求分析对于 excel 导出,是一个很常见的需求。最常见的解决方案就是使用 poi 直接同步导出一个 excel 文件。客户体验 & 服务性能客户体验如果导出的文件比较大,比如几十万条数据,同步导出页面就会卡主,用户无法进行其他操作。服务性能导出的时候,任务比较耗时就会阻塞主线程。如果导出的服务...

2018-11-26 21:52:07 30064

原创 java retry(重试) spring retry, guava retrying 详解

系列说明java retry 的一步步实现机制。 java-retry 源码地址情景导入简单的需求产品经理:实现一个按条件,查询用户信息的服务。小明:好的。没问题。代码UserService.javapublic interface UserService { /** * 根据条件查询用户信息 * @par...

2018-08-08 18:01:54 17167 2

原创 web server apache tomcat11-07-Realm Configuration

整理这个官方翻译的系列,原因是网上大部分的 tomcat 版本比较旧,此版本为 v11 最新的版本。本文档描述了如何配置 Tomcat 支持容器管理的安全性,方法是连接到现有的用户名、密码和用户角色的“数据库”。如果您正在使用一个或多个包含元素和定义用户需要如何进行身份验证的元素的 Web 应用程序,则需要关注此文档。如果您没有使用这些功能,可以安全地跳过本文档。有关容器管理安全性的基本背景信息,请参阅 Servlet 规范(版本 2.4),第 12 节。

2024-04-18 11:33:56 144

原创 web server apache tomcat11-06-Host Manager App

整理这个官方翻译的系列,原因是网上大部分的 tomcat 版本比较旧,此版本为 v11 最新的版本。Tomcat 主机管理器应用程序使您能够在 Tomcat 中创建、删除和管理虚拟主机。虚拟主机 How-To获取有关虚拟主机的更多信息。主机容器获取有关虚拟主机的底层 XML 配置和属性描述的更多信息。Tomcat 主机管理器应用程序是 Tomcat 安装的一部分,默认情况下可以使用以下上下文访问:/host-manager。

2024-04-18 11:31:05 240

原创 web server apache tomcat11-04-manager 如何管理?

整理这个官方翻译的系列,原因是网上大部分的 tomcat 版本比较旧,此版本为 v11 最新的版本。在许多生产环境中,具有能够部署新的 Web 应用程序或取消部署现有应用程序的能力而无需关闭和重新启动整个容器非常有用。此外,您可以请求现有应用程序重新加载自身,即使您尚未在 Tomcat 服务器配置文件中声明其可重新加载。功能描述从 WAR 文件的上传内容部署新的 Web 应用程序从服务器文件系统上指定的上下文路径部署新的 Web 应用程序。

2024-04-17 10:28:04 699

原创 web server apache tomcat11-03-deploy 如何部署

整理这个官方翻译的系列,原因是网上大部分的 tomcat 版本比较旧,此版本为 v11 最新的版本。部署是指将 Web 应用程序(无论是第三方 WAR 文件还是自定义的 Web 应用程序)安装到 Tomcat 服务器的过程。在 Tomcat 服务器内,可以通过多种方式来完成 Web 应用程序的部署。静态部署:在启动 Tomcat 之前设置 Web 应用程序。动态部署:通过直接操作已部署的 Web 应用程序(依赖自动部署功能)或通过使用 Tomcat Manager Web 应用程序来远程部署。

2024-04-17 10:25:50 468

原创 web server apache tomcat11-02-setup 启动

整理这个官方翻译的系列,原因是网上大部分的 tomcat 版本比较旧,此版本为 v11 最新的版本。在不同的平台上设置 Tomcat 运行有几种方法。主要的文档是一个名为 RUNNING.txt 的文件。如果以下信息没有回答您的一些问题,我们鼓励您参考该文件。

2024-04-16 20:53:49 998

原创 web server apache tomcat11-01-官方文档入门介绍

整理这个官方翻译的系列,原因是网上大部分的 tomcat 版本比较旧,此版本为 v11 最新的版本。对于管理员和 Web 开发人员来说,在开始之前,有一些重要的信息您应该熟悉。本文档作为对 Tomcat 容器背后一些概念和术语的简要介绍,以及在需要帮助时应该去哪里的指南。

2024-04-16 20:53:01 483

原创 apache Tomcat 入门介绍+windows 部署

Apache Tomcat是一个开源的、免费的Servlet容器,由Apache软件基金会的Jakarta项目开发。它实现了对Servlet和JSP规范的支持,并且可以作为一个Web服务器来使用,尽管它在处理静态资源方面的能力不如专业的Web服务器如Apache或Nginx。一旦Tomcat服务器启动,你可以通过浏览器访问你的Web应用程序。确保你有一个可用的WAR文件,可以是通过构建你的Java Web应用程序得到的,或者是从其他地方获取的。是你的Web应用程序的上下文路径)即可访问你的Web应用程序。

2024-04-15 10:53:52 300

原创 从零手写实现 apache Tomcat-01-入门介绍

\_/\( o.o )> ^ <mini-cat 是简易版本的 tomcat 实现。别称【嗅虎】(心有猛虎,轻嗅蔷薇。

2024-04-15 10:46:58 1596

原创 数据库设计工具 MySQL Workbench

MySQL Workbench 是一个功能强大的数据库设计和管理工具,它提供了一套完整的解决方案,从数据库设计到开发、管理、监控和维护。通过使用 MySQL Workbench,用户可以提高工作效率,确保数据库的稳定性和安全性,同时简化数据库管理的复杂性。无论是对于新手还是经验丰富的数据库专业人士,MySQL Workbench 都是一个值得使用的工具。

2024-04-14 12:20:03 928

原创 PowerDesigner 业务流程/数据建模软件和元数据管理解决方案

PowerDesigner 是一款由 SAP 公司开发的强大的数据建模工具,它广泛应用于企业级的业务流程和数据建模需求。该工具支持多种建模语言和标准,包括 UML(统一建模语言)、BPMN(业务流程模型和符号)、ER(实体关系)等,使得用户可以进行复杂系统的设计、分析和优化。PowerDesigner 是一款功能全面、适应性强的数据建模和业务流程设计工具。它通过提供强大的建模功能、元数据管理和集成能力,帮助企业在复杂多变的信息技术环境中进行有效的架构设计和管理。

2024-04-14 12:19:11 727

原创 常见 11 种 的数据库设计工具对比 PowerDesigner

数据库设计和建模是软件开发过程中的关键步骤,它们帮助开发者定义数据结构、关系以及数据库的物理存储。一个免费的开源数据库设计工具,支持多种数据库系统,包括MySQL、Oracle、SQLite等。虽然主要是一个数据库管理工具,但它也提供了数据建模和ER图设计的功能。一个在线的ER图设计工具,可以免费使用,支持多种数据库系统。

2024-04-13 21:05:07 595

原创 MySQL-09-mysql 存储过程入门介绍

针对同一个数据库对象的操作(如查询、修改),如果这一操作所涉及的 Transaction-SQL 语句被组织程存储过程,那么当在客户计算机上调用该存储过程时,存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给定参数(如果该存储过程带有参数)来调用执行它。系统管理员通过执行某一存储过程的权限进行限制,能够实现对相应的数据的访问权限的限制,避免了非授权用户对数据的访问,保证了数据的安全。(3) 存储过程能实现较快的执行速度。

2024-04-13 20:59:24 450

原创 MySQL Expression 1 of ORDER BY clause is not in SELECT list,references column

3、MySQL Server 默认开启了 sql_mode=only_full_group_by 模式,此模式要求 group by 字段必须出现在查询项中(select),否则就会报出该错误。mysql5.7版本中,如果DISTINCT和order by一起使用将会报3065错误,sql语句无法执行。在sql语句中使用DISTINCT时不使用order by进行排序,获取结果集后通过php进行数据的排序,同时也提高了mysql的性能。同时group by,limit和其中的一起搭配使用也会导致错误。

2024-04-12 22:24:31 717

原创 MySQL 04-EMOJI 表情与 UTF8MB4 的故事

文件系统的编码格式,把操作系统上的文件名转化成此字符集,即把 character_set_client转换character_set_filesystem, 默认binary是不做任何转换的。数据库给客户端返回时使用的编码格式,如果没有指明,使用服务器默认的编码格式。主要用来设置连接数据库时的字符集,如果程序中没有指明连接数据库使用的字符集类型则按照这个字符集设置。主要用来设置客户端使用的字符集。数据库系统使用的编码格式,这个值一直是utf8,不需要设置,它是为存储系统元数据的编码格式。

2024-04-12 22:21:26 665

原创 MySQL 05 MySQL入门教程(MySQL tutorial book)

但是没有办法,我是被逼的,从此入了一个新坑,我就决心系统的好好学习一下。如果你对本小电子书阅读非常没有耐心,你可以看看我做的一篇笔记 《21分钟MySQL基础入门》 ,这个笔记还可以在 SegmentFault 里面阅读,有导航阅读非常方便,为什么只需要21分钟呢?如果实在看不下去你可以🔫。最近项目强迫我这个前端老司机使用MySQL,虽然我在项目中已经使用过一段时间,为了写出高质量的SQL语句,能快速定位解决数据库引发的问题,系统的过一遍基础,你也可以当做是我的笔记。前端开发工程师为什么写这个入门教程呢?

2024-04-11 10:13:28 387

原创 MySQL 06 mysql 如何实现类似 oracle 的 merge into

所以,这个语句的含义是:如果要插入的数据在表中已存在(根据主键或唯一索引判断),则更新已存在行的时间列为当前时间;如果数据不存在,则插入新的行数据。子句是用于在插入数据时,当遇到主键或唯一索引冲突时,执行更新操作。这样可以避免插入重复的数据,而是更新已存在的行。的意思是,当插入数据时,如果出现主键或唯一索引冲突,将会更新已存在行中的。语句用于向表中插入新的行数据。列为当前的时间戳(使用。是要插入的对应列的值。在 MySQL 中,

2024-04-11 10:11:31 496

原创 MySQL datetime timestamp 以及如何自动更新,如何实现范围查询

看起来是不是有点奇怪,我并没有对hiredate字段进行插入操作,它的值自动修改为当前值,而且在创建表的时候,我也并没有定义“show create table test\G”结果中显示的“ DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP”。,它可分为两部分:date部分和time部分,其中,date部分对应格式中的“YYYY-MM-DD”,time部分对应格式中的。自动更新指的是如果修改了其它字段,则该字段的值将自动更新为当前系统时间。

2024-04-10 15:23:30 751

原创 MySQL Ruler mysql 日常开发规范

一、为何写为了自己以后的脚本编写或者是为团队公司提供一个可以达成共识的标准。二、怎么定规范简洁明了。根据实际业务可以进行调整。每一个规定尽量描述清楚缘由。规范必须是不断变化的,量体裁衣。三、参考《架构师之路》中有提及一些数据库军规。可以提供参考。四、使用解读比规则本身更重要。

2024-04-10 15:22:08 366

原创 MySQL truncate table 与 delete 清空表的区别和坑

drop table引起的MySQL 短暂hang死的问题,是由于drop 一张使用AHI空间较大的表时,调用执行AHI的清理动作,会消耗较长时间,执行期间长时间持有dict_operation_lock的X锁,阻塞了其他后台线程和用户线程;drop table执行结束锁释放,MySQL积压的用户线程集中运行,出现了并发线程和连接数瞬间上升的现象。truncate 应慎重,它属于ddl,会lock table meta data,甚至可能由锁表升级为锁库。实际上 drop 也是有会阻塞查询的。

2024-04-09 17:40:46 367

原创 MySQL View 视图

一、为何使用视图安全用户权限与视图绑定。实际上可以通过shiro或者控制。查询性能提高虚拟表不用修改表结构,可以完成某些业务需求。这一点比较实用。二、视图的工作机制视图的工作机制当调用视图的时候,才会执行视图中的sql,进行取数据操作。视图的内容没有存储,而是在视图被引用的时候才派生出数据。这样不会占用空间,由于是即时引用,视图的内容总是与真实表的内容是一致的。如此设计的优点节省空间。维护好真实表的内容,就可保证视图的完整性。

2024-04-09 17:39:50 516

原创 原型设计工具介绍-01-moqups 介绍

使用站点地图、组织结构图、故事板、用户流程、思维导图和UML图为复杂的想法带来清晰度。创建专业的网站、应用程序和仪表板线框图。在浏览器中直接操作,无需安装。通过拖放易于配置的元素,将您的UI和UX模型从低保真度提升到高保真度。在几分钟内创建精美的流程图,记录任何类型的流程、层次结构或客户旅程。通过为UX线框图和模型添加交互性,创建功能性的Web和应用程序原型。使用实时编辑和在线白板,将远程或同地办公的跨职能团队聚集在同一页上。与团队实时合作,进行集思广益、规划、设计并提供反馈。

2024-04-08 12:48:37 346

原创 常见原型设计工具介绍-00-overvuew

Axure RP是一款专业的快速原型设计工具,拥有强大的组件库,可快速完成产品或Web线框图、流程图及原型设计,需要下载电脑端软件使用,支持Window、Mac OS系统。1、使用场景:最终交付的产品是应用在哪些场景里,是否需要高保真度、交互性需求、原型设计所需的时间等等,都需要综合考量之后,再挑选最适合自己适用习惯和特性的。现在仍然有人喜欢在纸上画自己的原型,这个app就可以帮助你把纸上的草图变成电子版的原型,你只需要按顺序拍下你的草图即可。上手快,可实现团队成员间协作的无缝链接,减少沟通成本。

2024-04-08 12:47:26 402

原创 日志脱敏更加优雅性能更好,远超正则。支持 logback+log4j2 插件

序号方法参数结果说明1desCopy()目标对象深度拷贝脱敏对象适应性更强2desJson()目标对象脱敏对象 json性能较好3目标对象集合深度拷贝脱敏对象集合4目标对象集合脱敏对象 json 集合通过注解,指定每一个字段的脱敏策略。数据准备bean.setUsername("张三");bean.setAddress("中国上海市浦东新区外滩18号");bean.setMaskAll("可恶啊我会被全部掩盖");

2024-04-08 12:43:22 2330

原创 绘图工具 draw.io / diagrams.net 免费在线图表编辑器

除了内置的标准形状,draw.io还允许用户创建和保存自定义形状,以便在不同的图表中重复使用。

2024-04-07 09:08:56 503

原创 绘图工具 draw.io / diagrams.net 免费在线图表编辑器

除了内置的标准形状,draw.io还允许用户创建和保存自定义形状,以便在不同的图表中重复使用。

2024-04-07 09:08:25 542

原创 PlantUML 是绘制 uml 的一个开源项目

活动图 (here is the legacy syntax)是绘制 uml 的一个开源项目.PlantUML 是依赖于。

2024-04-07 09:06:51 490

原创 UML 绘制工具 starUML 入门介绍

StarUML 是一款功能强大的UML(统一建模语言)设计工具,专为软件工程师和系统分析师设计,用于创建、编辑和共享UML图表。它提供了一个集成的建模环境,支持多种UML图表类型,包括用例图、类图、序列图、状态图、活动图和组件图等。跨平台支持:StarUML 支持多个操作系统,包括 Windows、macOS 和 Linux,这使得用户可以在不同的平台上使用该工具,而无需担心兼容性问题。多种UML图表。

2024-04-06 10:12:41 1067

原创 UML 架构图入门介绍 starUML

在类关系图中,我们通常展示类的属性(attributes)和方法(methods),以及类之间的关联(associations)、依赖(dependencies)、继承(inheritance)和实现(realization)等关系。类之间有一个关联关系,表示一个学生可以被一个教师指导(这里用" 1 "表示学生端的关系强度,用" 0..* "表示教师端的关系强度,意味着一个教师可以指导多个学生)。在这个例子中,组件之间的关系是隐含的,因为它们都是文本编辑器应用程序的一部分,相互之间存在依赖关系。

2024-04-06 10:10:11 1225

原创 OmniGraffle 创建精确、美观图形的工具

OmniGraffle 是一款由 The Omni Group 开发的专业图形设计软件,专为 macOS 和 iOS 平台设计。它广泛应用于创建精确、美观的图形和图表,被设计师、工程师、项目经理和其他专业人士广泛使用。用户界面:OmniGraffle 提供了一个直观且易于使用的用户界面,它允许用户通过拖放操作来创建和编辑图形。软件的工具栏和面板设计得既简洁又功能全面,使得用户可以轻松访问各种绘图和编辑工具。多样化的图形和模板。

2024-04-05 23:33:12 469

原创 常见的常见免费开源绘图工具对比 draw.io/Excalidraw/Lucidchart/yEd Graph Editor/Dia/

Inkscape是一个开源的矢量图形编辑器,类似于Adobe Illustrator,用于创建矢量图形、图标等。:Dia是一个开源的桌面绘图工具,类似于Microsoft Visio,用于创建流程图、网络图、UML图等。:yEd Graph Editor是一个免费的桌面绘图工具,用于创建流程图、网络图、组织图等。:Lucidchart是一个在线绘图工具,提供了创建流程图、组织图、UML图等功能。:Tux Paint是一个开源的绘画软件,专为儿童设计,提供了简单易用的绘画工具和儿童友好的界面。

2024-04-05 23:30:07 1232

原创 OAuth2-03-springboot 整合

它是一种开放式授权标准,允许用户将存储在一个页面中的私有资源共享到另一个页面,而无需进入其凭据服务。成功登录后,用户将被重定向回你的应用程序,并且可以访问根路径("/"),返回"Hello, OAuth2!最后,我们将此访问令牌发送到资源服务器,如果它有效,则API将资源提供给应用程序。安全性是暴露由许多微服务组成的公共访问API时要考虑的最重要的一个方面。Spring有一些有趣的功能和框架,使我们的微服务安全配置更容易。这只是一个简单的入门例子,你可以根据自己的需求扩展和定制它。

2024-04-04 07:55:54 635

原创 OAuth2-03-springboot 整合

它是一种开放式授权标准,允许用户将存储在一个页面中的私有资源共享到另一个页面,而无需进入其凭据服务。成功登录后,用户将被重定向回你的应用程序,并且可以访问根路径("/"),返回"Hello, OAuth2!最后,我们将此访问令牌发送到资源服务器,如果它有效,则API将资源提供给应用程序。安全性是暴露由许多微服务组成的公共访问API时要考虑的最重要的一个方面。Spring有一些有趣的功能和框架,使我们的微服务安全配置更容易。这只是一个简单的入门例子,你可以根据自己的需求扩展和定制它。

2024-04-04 07:55:23 614

原创 搜索引擎-03-搜索引擎原理

(2)spider把互联网网页存储到网页库中(这个对存储的要求很高,要存储几乎整个“万维网”的镜像);(b)search_index查询倒排索引,获得“字符匹配”网页,这是初筛的结果;与rank两个系统完成。(3)build_index从网页库中读取数据,完成分词;(a)search_index获得用户的搜索词,完成分词;(4)build_index生成倒排索引;(c)rank对初筛的结果进行打分排序;(d)rank对排序后的第一页结果返回;(1)spider 爬虫系统;(3)rank 打分排序系统;

2024-04-04 07:53:07 733

原创 OAuth2-02-java 整合

在这个示例中,我们模拟了客户端使用客户端凭据授权(Client Credentials Grant)来获取访问令牌,并使用该访问令牌访问受保护的资源。请确保替换示例中的实际授权服务器地址、客户端ID和客户端密钥。

2024-04-03 21:56:13 213

原创 OAuth 2.0(Open Authorization 2.0)授权框架入门介绍

OAuth 2.0是一个广泛应用的授权框架,因此有许多开源的优秀框架可以帮助开发者实现OAuth 2.0的功能。: Spring Security OAuth是Spring框架提供的一个模块,用于实现OAuth 2.0和OAuth 1.0a协议。它提供了可扩展的API,可以轻松地集成到Spring应用程序中。Spring Security OAuth支持各种授权流程和客户端类型。OAuthlib。

2024-04-03 21:55:18 1005

空空如也

空空如也

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

TA关注的人

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