自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(36)
  • 收藏
  • 关注

原创 自定义实现网关

应该市面具备上的网关框架的能力,比如请求转发、负载均衡等,如果正常情况下连这些都不能具备的话,那还不如直接用现成的针对基础能力的改造或者说是进阶能力吧,比如说请求转发是不是可以提供配置化,动态负载均衡等提供全新的进阶能力,比如说是多租户,api市场,限流熔断等。saas平台,不仅提供多租户的能力,而且具备了API市场的特点。服务消费方从接入多种提供方过渡到只接入网关即可,节省时间。提供公共能力,如限流/熔断等。以后可以提供sdk,调用方引入后可以代码编写。

2023-12-09 20:00:10 731

原创 数据库隔离级别:从并发冲突到数据一致性的演进历程

​ 数据库隔离级别是保证数据一致性和并发性能的关键机制。从最早的读未提交和读已提交级别,到现代数据库系统中的标准级别和扩展级别,隔离级别的演进为数据库应用提供了不同的隔离选择。尽管隔离级别具有一定的局限性,但它仍然是保证数据一致性的重要手段。随着技术的发展,数据库系统不断改进和优化隔离级别的性能和灵活性,以满足不同应用场景的需求。未来的发展方向可能包括更加灵活的隔离级别选择机制、解决幻读和写偏斜的新技术,以及更精细的隔离级别扩展和自定义方法。

2023-12-07 22:32:25 1102

原创 Java中富文本转markdown

实现富文本即html语法转md,要求是尽可能展示效果一样,可以有少许误差,另外只实现了html中的body转md,其他标签如head等未实现。大致思路是:通过jsoup工具获取html节点,再穷举替换。前提是熟悉html以及md语法。

2023-12-07 22:17:49 759

原创 开发工具idea中推荐插件

主要是记录一下idea中实用插件,方便开发,换个电脑工作的时候也可以直接在市场中下载使用。

2023-12-04 22:59:22 827

原创 开发工具idea中推荐插件

可以快捷生成接口文档,支持生成postman、json以及md等,适合生成postman文件,不再需要手动操作。自动生成javadoc文档注释,基本上是按照字段名或者方法名翻译的,还是相当好用的。用来生成实体类的,适合需要调用api的场景,通过给定的json生成入参出参实体。用来关联mapper和xml文件的,可以在mapper和xml可以来回跳转。ai插件,国内可以访问,基于gtp3.5的,关键是不限制访问次数。用来翻译,可以翻译一段话,也可以直接翻译javadoc文档。开发工具idea中推荐插件。

2023-12-04 19:51:52 373

原创 shell脚本部署重启java服务

一些小型项目未上k8s,直接在云服务器上部署,经常手动部署jar包,现记录常用shell脚本,里面都有注释,主要是重启服务。

2023-12-03 15:05:30 608

原创 springboot接入Spring State Machine实现状态机

在上述通过 Config 注解启用了 State Machine 的例子中,我们定义了状态机的状态和事件转换,分别是通过 configure 方法实现 StateMachineStateConfigurer 和 StateMachineTransitionConfigurer。假设我们需要实现一个简单的订单状态机,订单的状态可以是已创建、已确认、已发货、已完成和已取消。接下来,我们创建一个状态机服务,该服务将使用上述状态机配置进行初始化,然后使用状态机按照规定的转换流程进行状态转换。

2023-11-27 22:00:00 2296

原创 MYSQL中DML、DDL常用语句记录

在 MySQL 中,DDL (Data Definition Language) 是一类用于定义和管理数据库结构及对象的 SQL 语句。在 MySQL 中,DML (Data Manipulation Language) 是一类用于查询和操作数据的 SQL 语句。子句是可选的,它用于指定要删除的行的条件。子句是可选的,它用于指定修改条件。语句用于删除数据库中的一个或多个表。语句用于删除某个表的指定索引。语句用于修改数据库表的结构。子句是可选的,它用于指定查询条件。语句用于删除表中的数据。

2023-11-26 22:42:30 614

原创 mysql中索引介绍(一)

但如果这个字段上建有索引,在使用该字段进行查询时,由于查询的数据量不大,即使进行全表扫描的查询,也可以快速定位到符合条件的记录,而且查询速度与表的大小无关,几乎是常数级别的。因为如果该字段的唯一性不高,那么即使在该字段上建立索引,由于符合索引条件的数据过多,使用该索引仍然需要扫描大量的数据块,以至于效率并不会有太大的提升。同时,在单个字段上创建索引的代价比较低,索引占用的空间也较小。唯一索引是强制性索引,保证了所在列的值的唯一性,可以防止重复的数据插入、更新或删除,且每个索引列的值都是唯一的。

2023-09-23 10:30:56 181

原创 Java中状态机

状态机(State Machine)是一种数学模型,用于描述对象或系统在不同状态之间的转移和行为。它由一组状态、转移条件和动作组成,可以根据输入条件从一个状态转移到另一个状态,并执行相应的动作。离散性:状态机是离散的,它的状态和转移是离散的,不涉及连续变化。易于理解和建模:状态机可以直观地描述对象或系统的行为,使得人们能够更好地理解和建模复杂的逻辑。可扩展性:状态机可以轻松地添加新的状态和转移,以适应需求的变化。

2023-08-27 20:10:56 3601

原创 HTTP协议中的Content-Type及其常见类型

Content-Type是HTTP协议中的一个头部字段,用于指示请求或响应中所传输的实体的媒体类型。

2023-08-27 16:51:24 1911

原创 mysql中explain的字段含义

具体解释如下: - 如果连接操作是通过唯一索引或主键进行的,ref字段将显示连接所使用的索引列。- 如果连接操作是通过非唯一索引进行的,ref字段将显示连接所使用的索引列以及其他列,用于进一步筛选结果。它提供了关于连接操作所使用的条件的信息,帮助我们理解查询的执行计划和优化查询性能。这意味着查询的过滤条件非常严格,所有的行都符合条件,没有需要被排除或过滤的行。当filtered字段显示为其他小于100的值时,表示有部分行被过滤掉,只有一部分行符合查询的过滤条件。查询的标识符,表示查询的顺序。

2023-08-20 20:42:11 1146 1

原创 validation之自定义注解@Constraint

首先,接口参数校验应该都不陌生,大部分应该都会借助javax.validation进行快捷校验,一般都是在入参字段上添加@NotNull、@NotEmpty等,对于一些特殊的入参校验逻辑,可能不是很适用,现在介绍一下自定义注解方式。

2023-08-13 18:25:02 362

原创 jdk自带的com.sun.tools库的常见用法

本文主要介绍利用jdk自带的tools.jar库生成常见java语法。使用场景主要是编译时注解,如lombok等,大致原理为在编译的时候插入相应的语句,体现在class文件上会多出相应语句。

2023-08-12 20:37:58 953

原创 java之jmh初识及使用

以下代码大致意思是:初始化一个list集合,放入100个对象,然后遍历这个集合,调用fastjson的toJsonString方法和对象的toString方法。最近有场景需要数据支撑json的toJsonString方法和java原生的toString方法的运行速度,因此选用了JMH测试工具。对象属性只有7个的时候,fastjson的toJsonString方法明显优于对像的toString方法。这100个对象属性值拼接了list的下标,防止字符串常量池中存在相同的字符。

2023-08-06 19:51:31 575

原创 Java中stream流的常见用法

这篇文章主要是记录stream流的用法,因为stream流比较常用,并且一些操作较复杂,记录在此,以后参考。这种场景是用于根据对象已知字段查找集合中对应元素。主要是用来修改元素的状态,比如其中对象的字段等。这种一般用于按照元素的字段等条件进行分组。主要是将集合中的元素换成stream流。主要是用来过滤集合中的元素,较常用。主要是用来替换集合中的元素。

2023-07-02 17:23:53 821

原创 springboot实现webocket长连接(四)--netty+websocekt+服务端

之前的博客使用了spring-websocket实现了websocket服务端,现在我们利用netty框架实现,更灵活,更性能。说明一下,netty需要占用一个端口,如果你的项目也提供了web服务,两者端口不能一样。之后,就是真正的使用了,这里是选择项目一启动就执行netty服务端,并注入到容器中。接下来,需要实现业务处理逻辑的类,首先定义一个抽象类,将一些公共逻辑放到里面。首先定义一个netty的server端,用于启动端口。启动测试,出现如下就代表服务启动成功了。

2023-05-18 14:40:12 907

原创 Linux之常用命令解压缩

总结一下Linux的解压缩命令,包括tar、zip。

2023-05-16 16:17:43 2773

原创 Linux之常用命令vim

总结一下vim的常用快捷键,包括翻页、删除、撤销、行号等

2023-05-16 15:53:24 137

原创 【问题解决】ElasticSearch分页查询时数据顺序错乱/不一致的问题

number_of_replicas:分片拥有多少个副本,需要部署到不同的节点上(就比如没有其它节点但是设置数量大于0的话,服务器会提示warning)ElasticSearch中索引可能是由多个分片构成的,并且每个分片可能拥有多个副本,其对应的设置时索引建立时的设置。利用关键字的hashcode,让相同查询条件作用到同一个分片上,保证每次输出结果一致,并在一定程度上保证查询效率。使用ElasticSearch分页查询时,每次输入同样的分页参数以及查询条件,得到的结果不一致的问题。

2023-05-15 17:34:12 1480 1

原创 ElasticSearch中实现模糊查询效果(类似数据库中like功能)

主要实现elasticsearch的模糊查询效果,类似关系数据库的like,es的现有模糊匹配api无法满足需求场景。

2023-05-15 15:16:16 6319 3

原创 springboot实现webocket长连接(二)

之前我们用较为简单的方式实现了websocket,前端可以通过浏览器原生对象就可以实现ws客户端,但是也有一系列问题,比如断线重连,心跳机制,这些都需要自己实现。//监听窗口关闭事件,当窗口关闭时,主动去关闭websocket连接,防止连接还没断开就关闭窗口,server端会抛异常。不过这种方式也有局限性,一方面需要引入三方库,一方面也限制其他客户端的连接,比如C端等。推荐demo:多种websocket实现方式,其中有基于spring-websocekt,也有基于netty框架,即下即用。

2023-05-05 15:07:39 367

原创 springboot实现webocket长连接(一)

springboot实现webocket长连接,这里通过一种较简单的方式实现websocket。这里简单的意思是指前端可以通过浏览器原生对象websocket实现客户端,如果浏览器不支持的话,这个方式不适用了,需要改造一下。推荐demo:多种websocket实现方式,其中有基于spring-websocekt,也有基于netty框架,即下即用。

2023-05-05 14:40:31 1207

原创 EasyExcel中修改表头颜色、自定义表头颜色字体等

EasyExcel中修改表头颜色、自定义表头颜色字体等

2023-05-05 09:44:43 8294 3

原创 EasyExcel如何在一个sheet页中导出多张表以及动态表头

EasyExcel如何在一个sheet页中导出多张表以及动态表头,这种方式适合动态表头的生成,不依靠定义实体类,使用较灵活。

2023-05-04 18:20:53 3508

原创 Java中验证ElasticSearch服务是否正常以及用户名密码是否正确

比如在前端页面配置ElasticSearch连接地址、用户名和密码,然后测试连接校验其正确性;主要是通过发送http请求给es服务器,正确则返回200。难点在于es服务器需要用户名密码。

2023-04-20 09:09:14 1049

原创 GreenPlum的Java语言扩展实施

GreenPlum数据库支持PL/Java语言扩展,用户可以通过Java方法编写自定义函数来实现特定功能。

2023-04-13 08:35:09 497

原创 [Java][Android][Rsa]rsa加密算法实现,android加密,java解密,相关问题及解决方案

RSA加密算法的Java实现,OAEP填充,Android侧和Java侧均适用

2022-08-21 19:15:36 2671

原创 [mysql]更新视图报错:Access denied; you need (at least one of) the SUPER privilege(s) for this operation

[mysql]更新视图报错:Access denied; you need (at least one of) the SUPER privilege(s) for this operation

2022-08-14 21:54:58 6760

原创 【netty客户端】通过netty实现封装websocket客户端

现在网上有很多netty实现的websocket服务端,但是客户端实现的不多,或者说是写的比较散,现写下。

2020-12-31 16:57:29 7125 9

原创 【Fastjson】使用fastjson将java对象转成json数据时名称设置别名

@JSONField(name = "sid")private String taskId;代码字段是taskId,如果正常转换是

2020-03-06 10:41:35 4041

原创 【toString】idea中toString()方法设置模板输出为json格式

模板:public java.lang.String toString() {return "{"#set ($i = 0)#foreach ($member in $members)#if ($i == 0)+"######else+",#####end#if ($member.string || $member.date)\"$member.name\":\""#els...

2020-02-26 16:49:29 1758

原创 【springboot】中controller返回实体类中过滤掉等于null的字段

使用springboot中注解:在需要过滤的字段上或类上面添加: @JsonInclude(JsonInclude.Include.NON_NULL)其它参数://将该标记放在属性上,如果该属性为NULL则不参与序列化//如果放在类上边,那对这个类的全部属性起作用//Include.Include.ALWAYS 默认//Include.NON_DEFAULT 属...

2020-01-07 14:27:10 2656

原创 websocket连接状态码

最近在做websocket,需要用到这些,查资料记录下(官网:https://developer.mozilla.org/zh-CN/docs/Web/API/CloseEvent)。CloseEvent.code只读返回一个 unsigned short 类型的数字, 表示服务端发送的关闭码, 以下为已分配的状态码.状态码 ?名称 ?描述 0–999 ...

2019-12-12 19:17:23 11720 4

原创 美化文件上传样式

前端开发中总会涉及到文件上传,制作一个不需要CSS专门美化的样式: 首先,先看一下效果图:引入jQuery和bootstrap代码如下:<div class="row" style="margin-top: 50px;"> <form class="form-inline" id="excelForm" action="/index" ...

2019-02-28 20:22:09 4670

原创 实战 React :组件编写 传值

    在React中,组件分为UI组件和容器组件。    在实践中,比如说一个表单页面,包括查询条件,表格部分,我们可以将查询条件和表格展示部分作为UI组件,然后将它们在容器组件中组装到一起。示例:    查询条件组件代码:class Search extends React.Component { render() { return ( &lt;input/&gt; ...

2018-05-26 15:25:25 239

空空如也

空空如也

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

TA关注的人

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