自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 数据库字段加解密插件,保障数据的安全,支持Mybatis框架与MybatisPlus框架,数据入库加密,出库解密

前言:  在很多的后台系统中,出于对用户隐私保护、数据安全、使开发和业务数据无感知、安全等级评审等需求中,都会对数据库部分内容进行加密,那么在书写逻辑时加密虽然简单粗暴,但有如下缺点:代码量升高而加重业务代码复杂度做法不够优雅非业务代码与业务代码混杂,业务侵入性过强研发人员的关注点变多,关注点过多那么也意味着后续可能维护困难最好有一种声明式做法,比如注解,在最小影响代码的情况下,优雅的实现这个功能。复杂的实现也不考虑,本文将采用mybatis的拦截器作为基础进行实现。(AOP思想)一、

2019-12-03 15:39:19 3613 9

原创 【Docker】docker和docker-compose一键安装脚本(linux)

docker和docker-compose一键安装脚本(linux)

2024-03-21 11:12:47 443

原创 【kotlin】在SpringBoot项目中使用kotlin协程coroutine实现方法的异步延迟调用,例如延迟查询短信发送详情结果。

当前做法实现了对某个方法异步延迟的操作,常见的场景如短信发送日志的延迟查询和记录。一般来说,短信的发送和接收,在短信云服务商那里形成完整记录是需要一定的时间的,只有这段时间过去才可以有效查到短信的发送详情。编写一个回调接口,并将该接口配置为回调地址,等待短信服务商回调该接口接收数据并记录。使用MQ创建延迟队列,在延迟队列触发后去查询数据并记录。使用定时任务,定时批量查询数据并记录。

2024-03-13 14:00:31 695 1

原创 【grpc】利用protobuf实现java或kotlin调用python脚本,含实现过程和全部代码

在一些特殊场景中,我们可能需要使用java或者其他任意语言调用python脚本或sdk等。本文的需求衍生也不例外于此,python端有sdk,但只能在python中调用,于是就有了本文章。常见的调用方式如jython、python提供http rest接口、python提供rpc实现、java通过jni调用转换成c的python。每种调用方式都有优缺点,我们更期待一种简单、快速、功能更自由、低侵入、方便维护的方式来实现。

2024-01-09 11:40:46 1295

原创 【单元测试】使用Gradle运行@SpringBootTest单元测试提示“No tests found for given includes。。。 “解决

在IntelliJ IDEA中运行Gradle服务的单元测试时报错。当前文章作为问题记录,方便日后查询。

2023-12-28 10:29:58 1178

转载 【WSL2】WSL2系统中git使用报错问题解决:GnuTLS recv error (-110): The TLS connection was non-properly terminated

参考地址:https://blog.csdn.net/tmaccs/article/details/101289284。操作参考:https://itsfoss.com/install-git-ubuntu/参考地址:https://zhuanlan.zhihu.com/p/624555732。

2023-12-25 14:18:16 239

原创 【WSL2】在Windows和wsl2中互相网络访问的优雅做法,不用再手动写死IP了

目前在windows与windows的wsl系统之间,还无法通过相对较固定的方式来互相网络访问,通常需要使用各自的ip来互相访问,而ip可能不是很直观并且可能会有变更,当前教程解决了这个问题,通过hosts映射的方式打通wsl与windows宿主机之间的访问。脚本的原理:在linux启动时或shell加载时,执行一次修改windows和linux上的hosts文件的脚本。为windows添加wsl的host以及为wsl添加windows的host,这样就能做到互相映射。

2023-12-25 11:39:30 1299 1

原创 【python】多线程之通过event事件在多线程间通信的代码示例

大家好,今天来讲一下python里的threading.Event类的使用,这个类使用简单,功能强大,如果你的用法得当的话,对一些高级功能的实现会很有帮助,典型的使用场景就是代码解耦,再或者就是数据流从a到b端的持续处理,需要a端发送数据,b端接收到后处理,那么接下来我们直奔主题,来看一下怎么在python里使用事件吧。

2023-12-14 17:32:57 156

原创 docker-compose出现Error while fetching server API version: (‘Connection aborted.‘, PermissionError(13,

这个错误提示docker-compose执行命令需要的权限不足。

2023-10-18 13:59:01 450

原创 【Git使用技巧】删除不小心上传到远程Git仓库如github上的内容

如venv文件夹不小心上传到了github上的仓库里,需要删除文件夹为venv,分支为main。

2023-07-04 16:36:53 214

原创 【NACOS自定义配置读取和映射】一个简易的Nacos配置读取和映射处理器,自定义注解+BeanPostProcessor,简单方便高效的属性注入解决方法

众所周知由Spring提供的注解属性,是一种简单易用且方便维护的自定义配置读取映射方式。部分API不会直接生效或者说需要做一些额外的操作,具体就是直接使用了@NacosConfigurationProperties后也没效果,使用了@NacosPropertySource标注了也没有效果,从源码里找处理的部分,在nacos-client包里没有的。感觉这块的api设计上本身就缺乏一些考究,既然加上没效果就放在有效果的包里好了,放在nacos-client包里面,它只是个摆设。

2023-06-12 16:28:23 2158 2

原创 【JAR包打包为EXE】javafx/java项目(适用jdk1.8)通过Gradle插件打包为exe,包含jre,客户机无需安装JDK(含代码)

通常在采用javafx或tornadofx等框架编写的桌面软件后,若要分发给客户机进行使用,就需要先在目标客户机安装合适版本的JDK,对于客户机来说并不需要关注这一步骤,这也增加了多台客户机分发及使用的成本,客户端更关注的是软件功能的使用。安装JDK环境对于技术人员而言可能较简单,而对于非技术人员或不是很熟练的实施人员,那这一步就成为了对使用该软件的一个很大的阻碍。

2023-03-03 15:50:47 2753 1

原创 【数据库编码集】oracle 10g数据库查询中文因编码格式不同,导致显示乱码。客户端转码解决办法,mybatis全局TypeHandler,mp多数据源

在web服务接入其他系统的数据视图时,可能会遇到中文显示乱码的问题,如采用了Oracle 10g数据库的系统(老旧而“稳定”的系统,嗯)的编码集为US7ASCII,而客户端的编码集通常可能为UTF-8,大多在plsql这种客户端查询是可以正常显示中文的,而此时程序通过jdbc驱动查询到的中文内容就可能会是乱码,这是因为服务端提供的中文内容是iso-8859-1编码(US7ASCII为iso-8859-1的子集)方式,客户端使用的还是utf-8导致的。解决方法可以是服务端解决,也可以是客户端解决。

2022-10-27 12:27:01 1634

原创 SpringCloud Gateway网关统一聚合Swagger接口文档(knife4j),实现通过网关统一文档地址查看所有子服务的接口文档

前言:在微服务系统中,通常每个服务都会暴露其接口文档,在前端人员或测试人员查看的时候,并不是那么方便,我们需要告诉相关人员每个服务的文档地址,由于knif4j官方(更易用的swagger封装,点此了解knif4j)支持以Rest的方式获取所有微服务的文档数据,再配合Gateway的路由,我们可以轻松的通过其相关API做到聚合文档的效果,做到只提供一个文档地址,便可查看所有微服务下的接口文档注意:各微服务的knife4j配置及文档访问,观阅此文前默认认为你已经是完成且可访问的,如未完成或遇到问题,参

2022-03-22 14:41:08 2956 6

转载 如何在代码中获取java maven应用当前的版本号等信息?

序最近需要在项目中获取项目的版本号,最笨的方法莫过于硬编码一个版本号,当然我也是这么干的。不过闲下来的时候突发奇想Spring Boot项目中pom.xml定义的版本号能不能通过API获得呢?于是利用摸鱼的时间研究了这种无聊透顶的东西。目前大多数Spring Boot项目都会打成Jar包,所以什么War包、Ear包的就先不摸索了。Jar包的秘密我们先解压一个Spring Boot应用Jar包看看里面能不能找到一些蛛丝马迹。在META-INF文件夹中找到了两个相关的东西,一个是MANIFEST.M

2022-03-16 14:56:08 3816

原创 SpringCloud Gateway结合Nacos实现微服务动态路由的例子,以及相关问题解决(含代码)

前言:在微服务的解决方案中,Nacos可以实现注册中心,服务发现,配置中心,负载均衡(结合ribbon/openfign)等一系列服务治理的功能,其内置管理页面,使用起来方便灵活且高效。它和SpringCloud的融合参考nacos.io文档:Nacos SpringCloud 快速开始在往常的Gateway使用中,微服务的路由变更往往需要重启,才能再次载入新的路由关系映射SpringCloudGateway作为高性能的微服务网关,其提供了很多FilterFactory供我们做相关扩展,而路由的cru

2022-03-07 15:42:05 3122

原创 【Teamcity】(一)基于Teamcity加Docker Compose自动部署前端VUE项目,自动发布

本文描述了如何采用teamcity将项目部署在docker容器中,完成前端项目(例子为vue,其他项目理论上也适用,各框架下完成项目打包即可)自动部署的具体方式,思路及步骤如下:1.配置项目的docker-compose编排,保证项目通过docker-compose就可以运行2.推送代码时,Teamcity按照条件触发自动拉取项目代码,将从配置好的git地址拉取代码到临时工作空间2.在临时工作空间的目录下,Teamcity将执行配置好的BuildStep进行服务的打包,部署,发布等动作。

2021-12-09 17:40:22 2417

原创 SpringCloud-Gateway统一处理返回参数,代码请直接复制粘贴

说明:SpringCloud-Gateway是基于webflux框架的(响应式编程WEB框架),就导致不能用正常的springMVC获取httpServletResponse返回值方法来统一获取返回值,所以本文就针对解决此问题注意:1.如果返回不是json的话(一般项目都是JSON),就不要转为json,是什么格式就用什么格式解析2.代码中"//TODO" 标记的地方,即可对返回值进行统一处理,也可以拿到gatewayContext(gatewayContext可以看我这篇博文)3.代码形式如此,

2021-12-02 10:21:36 5573 2

原创 git push往github推代码,报OpenSSL SSL_read: Connection was reset, error 10054的解决方式总结

前言:github作为我某个项目的代码托管平台,git pull merge等其他操作都ok的,但就git push很抽风,有时行有时不行(github到底行不行?),难以忍受,网上看了很多文章,我挨个尝试了并不管用,解决的方式基本都是更改git的参数,然而我设置了并不管用(针对github),我是从上往下试了一遍,最后一个方式直接解决了我的问题,(ssh方式用的是OpenSSH,依赖于OpenSSL),也不费劲,你都试下吧,指不定其中哪步就能解决你的问题打开控制台输入以下参数的配置:http及ht

2021-11-03 15:23:41 944

原创 按Flutter官方的步骤创建的helloworld都能爆出来的坑,Running Gradle task ‘assembleDebug‘

如果你电脑上flutter安装好了,也验证完成了,正大获欢喜的时候,那么你先别高兴太早,因为flutter它没那么好伺候,还有一堆坑等着你来跳…好了不吓唬大家,本文记录继安装好flutterSDK后,出现的问题问题一:Running Gradle task 'assembleDebug’这是gradle它不愿意伺候你了,非得给你返回个400 ,翻阅了网上抄来抄去的答案我最终解决了它,可能歪打正着,你尽管都试试,其中的步骤如下:1.更改android/build.gradle文件注释掉原先的,添加

2021-08-12 18:09:52 505

原创 flutter在cmd执行flutter doctor命令,cmd闪退

windows系统,在flutter官方github下载的压缩包,解压放到一个目录下,运行flutter_console.bat,其打开了cmd并且正常提示balabala的,但执行flutter/flutter doctor命令,cmd直接闪退配置好了环境变量,再去尝试,也是cmd闪退后来在powershell执行提示我The Flutter directory is not a clone of the GitHub project…然后提示我使用git clone -b stable https

2021-08-12 16:08:39 4577 8

原创 使用图形化界面时startxfce4,出现的cannot open /dev/tty0: Permission denied问题,解决方法

startxfce4在使用xserver时往往会报:cannot open /dev/tty0 (permission denied)添加所在用户到tty组中gpasswd -a 用户名 tty还不行的话试一下下面的方法:vim /etc/X11/Xwrapper.config里面原来内容如下:allowed_users=anybodyneeds_root_rights=yes改为(在=前后加上空格):allowed_users = anybodyneeds_root_right

2021-07-27 14:38:11 5868

原创 maven加快编译速度,简单参数,提升编译打包速度

参数:跳过单元测试:-Dmaven.test.skip=true开启多线程编译:-Dmaven.compile.fork=true每核增加一个线程进行构建:-T 1C完整命令:mvn clean package -T 1C -Dmaven.test.skip=true -Dmaven.compile.fork=true实测不开启时项目打包需要:4分01秒使用命令后打包只需要:1分28秒可以看到差距何其大,为了更好的利用如今电脑/服务器的强劲性能,墙裂建议大噶试一下项

2021-07-13 13:26:12 6287 2

原创 idea出现分支没被删除,却在使用git操作时找不到的问题解决

使用idea的update project(快捷键ctrl+T)

2021-07-09 17:04:21 256 1

原创 win10利用miracast进行无线投屏,双屏扩展

前言:在办公效率越来越高的今天,一面屏幕已经越来越不能满足日常的办公所需,越来越多的场景下需要多屏分工协作。程序员尤为多见,需要更高效的分屏操作,a屏打代码,b屏google、csdn。a屏竖着,b屏横着,各屏各司其职,并支持各种快捷键操作。如何有一个比较高效且方便的方式来达到分屏的目的?本文探讨一下无线方式达成的投屏及分屏硬件准备:1.win10电脑两台,不限笔记本和台式2.可能用到另购的支持miracast的无线网卡,miracast是什么自行百度谷歌miracast的支持:如果打开:win

2021-06-07 18:24:01 9500

转载 Java上传本地jar包到maven中央仓库

前言 本次目的:将jar包上传到maven远程中央仓库上作用:在Java - maven项目中可在pom文件中引入相应jar包依赖问题:maven不支持直接上传jar包解决:将jar包部署到第三方Maven仓库(如:sonatype ossrh仓库)中,之后再将jar包同步更新到M...

2021-04-08 17:05:41 381

原创 解决蓝牙耳机连接win10电脑,声音 卡顿,断断续续问题,索尼wf-1000xm3

下载:英特尔音频驱动安装后,一般会自动切换到这个立体声上,如果没有的话,手动点击上箭头,选择:这样就解决了卡顿问题了,推荐安装dolby,对于懒得折腾的人,在win10上的音质提升还是很不错的原因的话,可能索尼大法与win10没适配好?少了一个音频应有的驱动,因为之前是选中的通话用的驱动上...

2021-04-01 11:18:01 100422 59

原创 SpringCloud-Gateway获取body参数,解决只能获取一次问题,终极解决方案

这几天有个对SpringCloud-Gateway网关请求参数做安全校验的需求,网上多数教程不适用于SpringBoot2.1+版本。我在SpringCloud gateway Github中的Issues找到了答案,放上连接:作者采纳的答案。 具体代码如下: @Componentpublic class CacheBodyGatewayFilter implements Ordered, Globa...

2021-03-19 14:04:46 5191 35

转载 解决HttpServletRequest的输入流只能读取一次的问题,springMVC拦截器获取POST请求参数

背景通常对安全性有要求的接口都会对请求参数做一些签名验证,而我们一般会把验签的逻辑统一放到过滤器或拦截器里,这样就不用每个接口都去重复编写验签的逻辑。在一个项目中会有很多的接口,而不同的接口可能接收不同类型的数据,例如表单数据和json数据,表单数据还好说,调用request的getParameterMap就能全部取出来。而json数据就有些麻烦了,因为json数据放在body中,我们需要通过request的输入流去读取。 但问题在于r...

2021-03-12 10:50:04 1599

转载 深入理解 Tomcat(三)Tomcat 底层实现原理

又是一个周末,这篇文章将从一个简单的例子来理解tomcat的底层设计; 本文将介绍 Java Web 服务器是如何运行的, Web 服务器也称为超文本传输协议( HyperText Transfer Protocol, HTTP)服务器, 因为它使用 Http 与其客户端(通常是 Web 浏览器)进行通信, 基于 Java 的 Web 服务器会使用两个重要的类: java.net.Socket 类和 java.net.ServerSocket 类, 并通过发送 Http 消息进行通信. 我们先花一些篇幅介

2021-02-23 13:27:37 614 1

转载 Tomcat的原理及架构

转自:https://blog.csdn.net/jsj13263690918/article/details/80368757 俗话说,站在巨人的肩膀上看世界,一般学习的时候也是先总览一下整体,然后逐个部分个个击破,最后形成思路,了解具体细节,Tomcat的结构很复杂,但是 Tomcat 非常的模块化,找到了 Tomcat最核心的模块,问题才可以游刃而解,了解了Tomcat的整体架构对以后深入了解Tomca...

2021-02-23 11:44:06 118

转载 你是怎么对待上帝的?

一次不愉快的体验最近家里在装修,遇到了一点小问题,回想以后发现,这种场景和很多公司非常像!再结合最近看的《程序员修炼之道》,真的发现好多道理都是相通的。所以想来聊聊这次不愉快的体验,希望大家引以为戒。给出解决方案,而不是抱怨那天我们到工地,主要目的是装橱柜的,就是把定制好的橱柜安装到位。安装师傅来了以后,第一件要做的事情就是把地柜放到位,然后调整地柜高度。然后我们之前的瓷砖可能贴的不平整,肉眼看不出来,但是安装地柜的时候,一测量就会发现左右高度差是1厘米,问题也不大,但是需要橱柜师傅仔细调节地

2021-01-12 20:30:31 167

转载 给自己挖口井

无意看到一篇文章,深有感触,特摘录下来,警示自己。。。。有两个和尚住在隔壁,所谓隔壁就是隔壁那座山,他们分别住在相邻的两座山上的庙里。这两座山之间有一条溪,于是这两个和尚每天都会在同一时间下山去溪边挑水,久而久之他么变成为了好朋友。  就这样时间在每天挑水中不知不觉已经过了五年。突然有一天左边这座山的和尚没有下山挑水,右边那座山的和尚心想:“他大概睡过头了。”便不以为意。哪知道第二天左边这座山的和尚还是没有下山挑水,第三天也一样。过了一个星期还是一样,直到过了一个月右边那座山的和尚终于受不了,他心想:

2021-01-12 20:01:44 116

转载 gateway 返回Body 数据居然出现偶现的乱码问题, 原来是数据被截断背的锅

1、查看问题在开发的时候,发现页面的数据偶先乱码,但有不清楚是那的问题,我们使用swagger-ui参数,发现乱码数据,但概率为1/10,每10次大概查询一次,如下 一会又是正常的 返回数据是json数据,编码 utf8,一切都是正常的,重点是偶现,这就奇葩了 2、定位问题 因为我们是微服务项目使用了 spring-cloud-gateway做为网关,于是使用网关地址和 项目地址分别测试 走网关地址 走具体的项目地址 果然走网关地址的url 会出现乱码,走具体的项目地址的不会出现乱码问题

2020-10-27 10:59:15 1924 4

转载 SpringBoot不重启修改日志级别【Slf4j、Logback动态日志级别】

SpringBoot不重启修改日志级别【Slf4j、Logback动态日志级别】前言需求: 线上日志级别高,而定位问题时需要低级别日志便于分析问题功能:不重启服务器,提供设置页,手动触发Slf4j 项目日志级别变化扩展:可将此功能放入后台管理系统中...

2020-08-12 15:18:31 876 1

转载 springboot2.2.x集成zipkin

前言场景:springboot2.2.2集成zipkin。 在做集成gateway的时候,在网上看到别人的配置里面有这个zipkin的配置,就随便搜了下,没...

2020-06-02 10:18:09 1609 1

转载 spring-boot添加到linux服务

在/usr/lib/systemd/system/下创建service文件[Unit]Description=myfee [Service]WorkingDirectory=/usr/share/web-appExecStart=/usr/share/jdk1.8.0_151/bin/java -ja...

2020-06-01 11:36:45 136

转载 spring-cloud 分布式日志采集

 由于微服务架构中每个服务可能分散在不同的服务器上,因此需要一套分布式日志的解决方案。spring-cloud提供了一个用来trace服务的组件sleuth。它可以通过日志获得服务的依赖关系。基于sleuth,可以通过现有的日志工具实现分布式日志的采集。这里使用的是ELK,也就是elasticsearch、logstash、kibana。一、sleuth第一步:sleut...

2020-06-01 11:27:44 949

转载 Netty之EventLoop解惑篇

一、NIO Reactor模型1、Reactor模式思想:分而治之+事件驱动1)分而治之一个连接里完整的网络处理过程一般分为accept、read、decode、process、encode、send这几步。Reactor模式将每个步骤映射为一个Task,服务端线程执行的最小逻辑单元不再是一次完...

2020-05-21 15:17:35 999

原创 springboot1.5.x升级2.2.x问题,java.lang.NoClassDefFoundError: org/springframework/util/unit/DataSize

问题:项目所用的springboot版本从1.5.x升级到2.2.x,项目启动报java.lang.NoClassDefFoundError: org/springframework/util/unit/DataSize原因:spring版本和springboot及springcloud的适用版本对不上网上一般解决方式:找到自己定义过的spring版本,修改为5.2.x即可PS: 想...

2020-04-16 09:27:36 1838

空空如也

空空如也

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

TA关注的人

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