- 博客(85)
- 资源 (21)
- 问答 (15)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 总结一下自己,最近三年,我做了哪些工作
有时急于满足客户需求没走正常流程,导致开发设计质量低下,开发和测试没有足够的自测测试时间,存在返工情况或其他风险,后面尽量沟通好确定的需求再移交开发需求以及设计文档考虑不够详细,开发过程中发现有细节业务问题,会导致返工或工时不够的情况;后面需求设计尽量有业务闭环,原型、如涉及现有系统改动需提供改动点等,不仅仅完善了文档,同时减少了开发以及测试的问题开发存在临时解决问题的情况,后面会很难维护:需要从一开始做好设计,提高开发觉悟,开发前自发组织简单的评审讨论。
2024-06-05 17:33:22
573
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 如何做代码抽象设计,多种设计模式的应用【四种抽象方式,干货附上代码】
代码这种东西,机器不管你写的怎么样,肯定能识别, 人就不一样了,前人拉屎后人踩屎,一坨认栽,n坨就有点过分了哈一般写代码也不用太高大上,很多接口还是很简单的,如果把各种设计模式搞上来那叫过度设计,叫逼王;就在多渠道,多河流的时候才能当逼王看到过几位写的不错的同事搞的设计,和大家简单介绍一下下面介绍下这三种方式。
2023-02-10 09:54:34
882
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
转载 JDK8飞到JDK17版本介绍和踩坑记录
SpringBoot3和Spring6的最低依赖就是JDK17!JDK17就是官方保证会长期支持的版本。JDK 17 最多可以支持到 2029 年 9 月份。JDK 8 支持的时间更长,可以延长到 2030 年 12 月从 JDK 诞生到现在,还在长期支持的版本主要有 JDK 7、JDK 8 、JDK 11以及 JDK 1,JDK 17 将是继 Java 8 以来最重要的LTS版本,是 Java 社区八年努力的成果。
2023-01-03 20:17:55
7305
原创 maven生命周期介绍;maven-dependency-plugin讲解;maven-resources-plugin讲解;docker-maven-plugin简单讲解
Maven Assembly Plugin 是一个强大的Maven插件,用于创建项目的分发包,它可以将项目的编译输出、依赖、资源以及其他文件组织成一个可分发的归档文件,如ZIP、TAR、JAR、WAR等。知识总是在总结中发酵的,去年在公司做过容器化相关的东西,涉及到制作发布包等内容,对maven有了进一步的理解,但是一直没有时间整理,最近找些时间总结一下,希望对大家也有帮助吧。maven-dependency-plugin是Maven中一个非常强大的插件,用于处理项目依赖相关的任务。翠花,辛苦捡桌子了!
2024-06-01 15:52:35
694
原创 Spring事件分析以及多种使用方式实践 使用场景 附可执行demo
我们可以定义一个事件类继承ApplicationEvent ,并设置为泛型,它毕竟是个类,我们可以在里面写点字段啊方法的都行,无非发布后在监听的地方去执行,那么具体你想搞些什么发布出去让 监听去做的,或者只是通知一声,都是你说了算。
2024-05-13 19:39:45
929
原创 @FunctionalInterface函数式接口深入实践附demo 多种写法 提高代码可读性健壮性
@FunctionalInterface 是Java 8引入的一个注解,主要用于标记一个接口为函数式接口。函数式接口是指只有一个抽象方法(除了默认方法和静态方法外)的接口。特点如下:唯一抽象方法:被@FunctionalInterface注解的接口必须保证只包含一个未实现的方法。如果接口中有多于一个抽象方法,编译器将会报错。Lambda表达式的载体:函数式接口是Java中Lambda表达式的目标类型。你可以通过Lambda表达式来创建该接口的实例,使得代码更加简洁和易于阅读。默认方法和静态方法不
2024-04-23 19:12:03
688
1
原创 几种非常常用的方式获取springboot中application中的配置 大家看着用
在springboot应用中可以从application.properties中获取配置文件的方式,多种介绍
2024-02-01 19:04:23
814
原创 建造者模式深入理解:演示建造单个和多个产品的实践,结合模板模式,通俗易懂
建造者模式(Builder Pattern)是一种创建型设计模式,它主要用于将一个复杂对象的构建过程与它的表示分离,使得同样的构建过程可以创建不同的表现形式。这种模式通过一系列可重用的独立的类(称为建造者或构建器)来一步一步创建一个复杂的对象,而不需要知道具体的内部构造细节
2024-01-11 20:41:23
1248
原创 高级鉴权网关设计二:SM2国密+协议SPI可扩展+动态配置
既然是网关其实就是和外部的礼尚往来,每个第三方还有可能不一样,一般常用的有http的form表单,get,post,https,和每个第三方的交互签名方式、加密方式都可能不同,很多时候取决于你是甲方爸爸还是乙方儿子,如果是甲方就好了,对接就按你们的来,你们来对我们,乙方就痛苦了,得适配不同的甲方爸爸,那我们该如何设计呢?下面为大家介绍一种比较常用的方案,附带可扩展设计。关于加密和协议根据两个维度进行扩展,一个是加密类型encryptType,一个是协议类型protocolType,分别定义好枚举。
2024-01-08 20:28:56
537
原创 高级鉴权验签方式的实践,技术方案为注解+ASCII排序+多类型多层级动态拼接+RSA加密(或国密SM2)+Base64+Redis滑动窗口限流
虽然大多数企业的流量没有那么大,不过限流还是要有的,毕竟还有外部调用我方系统接口,需要验证访问权限进行,同时防止万一接口并发量大影响我方系统, 所以要增加流控处理;不同的来源在独立配置,可以做到不同来源的限流鉴权设计技术方案:采用注解+ASCII排序+多类型多层级动态拼接+RSA加密(或国密SM2)+一次Base64转码限流设计:采用Redis的zset滑动窗口限流的方式建议用国密,SM2比RSA的效率要高,话不多说,先说方式,后说好处。
2024-01-05 17:52:29
599
原创 Spring基础梳理(一):一定要先全局掌握Spring
越活越完蛋了,看着看着现在又想梳理梳理Spring基础,搞点原始真解吧,不过技术人每个阶段看相同东西的理解都是不同的,只是现在浮躁的技术中又有多少人能够一本书啃两遍以上呢,我也一样,徜徉于业务之中,所以技术是什么,永远记住,技术是服务于业务的,架构也是同样的道理,不要为了技术而技术,为了架构而架构。
2023-08-17 19:37:57
133
原创 【AI资源福利篇】整理当前主流AI开发工具、聊天机器人、资讯、大语言模型、以及绘画等其他AI平台工具
福利篇~~~~~~~~陆陆续续看了很多AI相关的网站,并且也实践了一些,今天整体整理一下分享给大家,希望大家都是风口上的猪,能够飞上天。
2023-08-02 18:44:40
833
原创 【深入浅出Redis-高可用篇】带你吃透Redis高可用以及弹性扩容方案
同志,别忘了成长这一篇给大家介绍一下,保证让大家心里有底,脑中有概念Redis的高可用主要有两种,一种是主从复制,一种是哨兵,一种是集群cluster。
2023-07-24 00:40:31
384
原创 Redis缓存雪崩、穿透、击穿原因分析和解决方案,附Redis管道使用技巧
Redis管道(pipeline)是一种在网络层面上实现的批量操作机制,它可以将多个命令一次性发送给Redis服务器,而不需要等待每个命令的响应。这样可以减少客户端和服务器之间的网络通信次数,提高命令执行效率。Redis管道的原理是基于TCP协议的请求/响应模型,即客户端发送一个请求后,必须等待服务器的响应才能发送下一个请求。如果客户端有多个请求要发送,那么就会产生多次网络往返延迟(RTT),影响性能。
2023-07-16 02:55:13
297
2
原创 【深入浅出Redis 一】从版本特性到数据类型到线程模型,带你了解Redis的核心特性和应用场景!
先了解下Redis的一些基础知识和特性,Redis是一个开源的,基于内存的高性能键值数据库。它支持多种数据类型,如字符串、列表、集合、散列、有序集合等等。高性能:Redis可以处理每秒数十万次的读写操作,因为它将所有数据存储在内存中,避免了磁盘I/O的开销。持久化:Redis可以将内存中的数据定期保存到磁盘中,或者将每次修改操作追加到日志文件中,以实现数据的持久化。这样,即使发生系统崩溃或重启,也可以恢复数据。主从复制。
2023-07-03 22:41:52
228
原创 如何解决多线程卡死问题?四招教你轻松应对!
多线程大家都用过,可以让一个程序同时执行多个任务,提高效率和性能,一个人干的慢,三个人干。但是,多线程也带来了一些问题和挑战,比如等问题,三个人抢一碗米饭,没有个规矩肯定要打架的。这里我介绍一种可能出现的多线程问题:如果一个线程在执行过程中一直卡住,线程不释放最终导致线程耗尽怎么办。这是前一阶段对接外部系统时遇到的一个问题,对方提供了个SDK,我们集成后用他们的netty的方式建立连接,推送相关数据,但是呢这个推送不能阻塞业务,所以我们采用异步推送,搞了个线程池,随取随还,如图后来就发现有一个。
2023-06-26 20:10:12
5758
原创 Java类加载机制:从字节码到对象的奇妙之旅
类加载机制是Java虚拟机将字节码转换成可运行的类的过程。这个过程包括三个主要步骤:加载、链接和初始化编辑就是将字节码文件从不同的来源(如本地文件系统、网络、内存等等)读取到虚拟机中,并创建一个对应的Class对象,用来表示这个类在内存中的数据结构。连接:就是将加载后的Class对象进行验证、准备和解析三个阶段的处理,以保证类的正确性和完整性。其中包含了下面三个小步骤验证:就是检查元数据Class对象是否符合Java虚拟机规范。验证文件格式验证;验证字节码验证(确定程序语义合法,符合逻辑);
2023-06-23 10:51:15
907
原创 【起飞】让你电脑速度快到飞起的一些牛逼的设置整理【电脑卡顿反应慢等问题解决】
对于开发来说电脑的反应速度简直影响了思维的速度,要让电脑速度跟上我们的思维,提高工作效率,早点打卡下班回家陪老婆孩子哈哈这篇文章主要对windows系统做的一些优化,是真的好用,仿佛在访问静态页面一样,下面我分享一下相关设置以及一些使用情况吧。
2023-05-16 12:23:23
3565
1
原创 【SpringBoot1.5.x升级到SpringBoot2.2.13记录】
为什么升级到2.x1.SpringBoot 1.X 官方已不再进行维护;2.SpringBoot 1.X 下许多新发现的SpringBoot和SpringFramework的漏洞无法再进行升级处理,安全扫描无法通过;3.SpringBoot 2.X 下的应用启动速度会比SpringBoot1提升10到20秒时间,整体性能上也更优。
2022-12-15 19:18:53
990
原创 开发者友好的Linux常见命令整理
uname -a # 查看内核/操作系统/CPU信息cat /etc/redhat-release 查看服务器版本cat /proc/cpuinfo # 查看CPU信息hostname # 查看计算机名lspci -tv # 列出所有PCI设备lsusb -tv # 列出所有USB设备lsmod # 列出加载的内核模块env # 查看环境变量查看ip信息:ifconfigdu -sh # 查看指定目录的大小。
2022-11-29 20:30:58
984
1
原创 2022除岁迎新,与君共勉
2022,除岁迎新愿我们的坚持都能够得偿所愿愿少bug,高质量愿我们都学有所成,体现自己的价值,展现自己的知识此刻,看到这里,相信我们都是活在了最好的时代改变世界,有时候就是不经意间相信自己,即是无敌...
2022-02-07 16:47:49
209
原创 try catch finally各种情况的执行顺序(示例)
比较有意思的,基础的,容易忽略的小例子,开发的时候要注意上例子示例1public static void main(String[] args) { int i = test1(); System.out.println("main " + i); } private static int test1(){ int i=0; try { i++; System..
2021-10-08 10:58:17
275
2
原创 类加载顺序示例解析理解
通过实例加深一下理解吧 类加载顺序的认识直接影响开发的水平,包括后续设计扩展点,作用范围都有着明确的指导比如下面父子类,分别定义静态变量,全局变量,静态代码块,非静态代码块,构造方法public class ParentTest { static int x = 1; int xx = 2; static { System.out.println("x " + x); } { Syste...
2021-09-24 13:27:22
144
原创 TRC20代码接入
@Test public void balanceOfTrc20() throws Throwable { String queryAddress = "TXoDY8b3upAAkPxaK5B845zd8x44bFh1nX"; String url = tronUrl + "/wallet/triggerconstantcontract"; JSONObject param = new JSONObject(); ...
2021-06-03 14:49:24
8103
1
原创 Springboot+JWT+Shiro集成完全版(带测试示例)
相信大家已经对shiro,jwt有基本的概念了,不熟悉的可以看下jwt:https://blog.csdn.net/Goligory/article/details/104400381对于shiro等会我贴上代码然后简单分析下maven引入 <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-s...
2021-05-24 18:04:06
869
2
原创 堆外内存的介绍及释放
热爱美好的事物,是一种追求介绍____堆外内存意味着把内存对象分配在 Java 虚拟机的堆以外的内存,这些内存直接受操作系统管理(而不是虚拟机),作用:能缩短垃圾回收时间 适合生命期中等或较长的对象特点:对于大内存有良好的伸缩性,可以自行扩展对垃圾回收停顿的改善可以明显感觉到,不影响用户线程在进程间可以共享,减少虚拟机间的复制如果使用的多,那么你可能会考虑硬盘的速度会有影响堆外内存的回收堆外内存的分配很简单,比如如下ByteBuffer buffer = ByteBuffer
2021-04-02 17:20:03
1544
原创 Elasticsearch多索引查询搜索 排序异常问题方案
Elasticsearch6.8HighLevel方式场景:全局搜索,综合搜索,可能有帖子,产品,文章等,要倒序,哪个发布了就在最上面显示出来问题在多索引全局查询时,比如设置了sourceBuilder.sort(“字段名”, SortOrder.DESC);会报错如下Elasticsearch exception [type=class_cast_exception, reason=java.lang.Long cannot be cast to org.apache.lucene.util.
2021-03-23 16:25:14
2598
2
原创 SpringBoot集成ELK详细教程
该文章主要介绍了ELK(Elasticsearch+Logstash+Kibana)的概念和搭建方法,并提供了详细的操作步骤和代码示例。同时还介绍了如何在SpringBoot项目中集成ELKElasticsearch:是一个分布式的搜索和分析引擎,可以用于全文检索、结构化检索和分析,并能将这三者结合起来。Elasticsearch 基于 Lucene 开发,现在是使用最广的开源搜索引擎之一。
2021-03-01 16:03:59
10480
3
原创 AbstractQueueSynchronizer简称AQS的理解
我是一个使者,不为所斩,但求已知AbstractQueueSynchronizer,抽象的队列式同步器, 简称 AQS,一般用于支持其他框架,在多线程中常用工作原理: 把所有请求线程构成一个CLH队列,当一个线程执行完毕lock.unlock时会激活自己后续节点,正在执行的线程不在队列中,等待执行的线程全部处于阻塞状态比如ReentrantLock,先通过CAS尝试获取锁。如果此时已经有线程占据了锁,那就加入CLH队列 队尾并且被挂起 自旋。当锁被释放之后,排在CLH队列队首的线程会被唤醒,.
2021-02-24 17:09:57
144
原创 lambda表达式的使用(全)
大家应该都知道jdk8的lambda表达式了,还是比较好用的,下面介绍一下用法Lambda简介Lambda 表达式是 JDK8 的一个新特性,可以取代大部分的匿名内部类,写出更优雅的 Java 代码,尤其在集合的遍历和其他集合操作中,可以极大地优化代码结构。JDK 也提供了大量的内置函数式接口供我们使用,使得 Lambda 表达式的运用更加方便、高效。语法形式为 () -> {},其中 () 用来描述参数列表,{} 用来描述方法体,-> 为 lambda运算符 ,读作(goes t.
2021-02-17 16:49:37
893
原创 RocketMQ常用的几种消息队列形式
RocketMQ常用几种消息发送形式可靠同步消息可靠异步消息耗时短消息延时消息顺序消息事务消息注入@Autowiredprivate DefaultMQProducer defaultMQProducer;可靠同步消息 /** * 可靠同步消息 */ public void syn(String tag, String topic, String content) { try { Message msg = new Messag
2021-02-08 10:17:33
1282
原创 支付服务代码设计(策略模式,可扩展,接入方便)
最近一直在深入学习一些知识,整理出一些东西一直没有时间写出来,后续会慢慢总结一下写在博客上,对于博客还是不想专门写知识点,总结和提升终究是为了自己,写出来的博客为了让别人看的好,更为了自己的成长和记录,这种记录不仅仅是知识,知识不仅仅是软硬件,还有经验,有思想,这些才是更宝贵的我们很难真正的交心交流,但是却可以把心放在这里,谁看到了,和它聊一聊那也是好的;这种沟通的活跃就像我不喜欢程序员越来越像机器人一样,像法律一样死板,应该还是一个有血有肉有思想的人,不是猿原来分享了支付服务的一些点,今天实..
2020-06-14 11:24:52
1025
2
转载 问题排查手段好文章。JAVA 线上故障排查套路
线上故障主要会包括 CPU、磁盘、内存以及网络问题,而大多数故障可能会包含不止一个层面的问题,所以进行排查时候尽量四个方面依次排查一遍。同时例如 jstack、jmap 等工具也是不囿于一个方面的问题的,基本上出问题就是 df、free、top 三连,然后依次 jstack、jmap 伺候,具体问题具体分析即可。CPU一般来讲我们首先会排查 CPU 方面的问题。CPU 异常往往还是比较好定位的。原因包括业务逻辑问题(死循环)、频繁 gc 以及上下文切换过多。而最常见的往往是业务逻辑(或者...
2020-05-27 09:44:21
647
原创 Java OOM原因以及问题分析排查步骤
Java服务OOM,最常见的原因为:(1)有可能是内存分配确实过小,而正常业务需要使用更大的内存;(2)某一个对象被频繁申请,却没有释放,内存不断泄露,导致内存耗尽;(3)某一个资源被不断申请,系统资源耗尽,例如:不断创建线程,不断发起网络连接排查过程如果知道具体服务和接口,可以ps -ef|grep java查看pid1. jmap -heap pid 确认内存本身是否分配过小,可以看到新生代老生代的参数配置[root@bird74 ~]# jmap -h...
2020-05-26 17:04:21
1333
1
原创 cpu占用过高排查分析解决,简单方便
要想遇到个CPU过高也不是件容易的事啊,先模拟下吧@GetMapping("/letCpuBuisy") public void letCpuBuisy(){ int i=0; while(true) { i++; } }发包-->运行-->请求top命令看一下。它来了 它来了!可以看到cpu100%了,pid是135243的,怎么破?如果我们要是手动解决,步骤如下...
2020-05-22 15:56:30
1192
原创 关于线程安全的小测试
起100个线程 + 1,循环100次查看结果,正常来说应该是100对吧public static int t = 0; public static void main(String[] args) throws InterruptedException { for (int i=0;i<100;i++){ for (int j=0;j<100;j++){ new Thread(new Runnable()...
2020-05-17 20:00:30
378
原创 一次redis OOM问题分析解决,rdbtools安装分析redis内存
遇到比较尴尬的项目是难免的,质量真是乱的一批,对于redis的使用也是乱用,那么就会有一个问题,内存撑不住怎么办?不是高可用,只有一个裸redis(高可用方案下次再说)分析步骤进入redis,查看内存使用情况redis -a 密码info memory服务器分配了5G内存,maxmemory为5G,可用4.66G,发生OOM的时候已经全部用完;详细分析可以专门问下度娘OOM紧急解决方案:提高最大内存,configsetmaxmemory xxx设置内存淘汰...
2020-05-10 13:43:43
1432
2
Git开发操作文档 全面介绍Git技术
2023-08-31
Docker学习文档,全面介绍Docker技术
2023-08-31
云原生学习word文档(全)
2023-08-31
宝藏网站合集:里面有个各种网站,网页工具,AI,素材模板等
2023-08-31
Discord安装包,没错就是你以为的MJ-discord安装包
2023-06-08
node-v12.16.2-linux-x64.tar.xz
2020-04-25
jacob和百度语音播报
2018-07-26
个推推送工具类
2018-07-26
新版支付宝支付集成
2017-11-01
支付宝电脑网站支付
2017-08-28
javaweb如何根据pc端写一个手机端?求好的思路
2017-07-19
ngrok的使用,没有访问成功,求指点
2017-07-12
textarea有换行提交不了,请教大神为什么,如何解决?
2017-06-02
为什么手机适配meta-viewport后火狐浏览器并不能全屏显示,别的浏览器都可以?
2017-05-17
placeholder多文本框输入兼容性的问题
2017-05-15
jsp界面如何用简单的MD5进行密码加密
2017-05-08
ssm中取到的值#{}如何再拼接一个字符串
2017-05-04
求sqlserver大神,ssm能连上只能运行一遍代码,重启电脑后还是只能运行一次
2017-04-17
sql server数据库登不上去
2017-04-13
索引1超出范围,insert是我的语句
2017-04-12
sqlserver数据库登不上去,每次重启电脑才能访问一次
2017-04-11
sqlserver数据库中这个锁如何删除,每次运行一次都会被锁,电脑重启才好一下,谢谢了
2017-04-10
如何根据报销单设计数据库
2017-03-23
TA创建的收藏夹 TA关注的收藏夹
TA关注的人