- 博客(2823)
- 收藏
- 关注

原创 SpringBoot内容聚合
分类整理一些内容,方便需要时回过头来看,整理不易,如有疏漏,请多担待!之后要查看这篇文章,公众号后台回复 “Springboot聚合”SpringBoot+Mybatis多模块(module)项目搭建教程Springboot使用RedisTemplate优雅地操作redisSpringboot线程池的使用和扩展SpringBoot 并发登录人数控制Springboot如...
2019-07-31 11:45:55
3105
10

原创 Java面试题内容聚合
很多时候面试中恨不得你会造火箭,工作中也就让你拧拧螺丝。为了不在面试中吃亏,面试前突击多看看面试题还是狠有必要的。这是一份常见Java面试题分类汇总,希望对大家有用!初级面试题Java面试题-基础篇一Java面试题-基础篇二Java面试题-集合框架篇三Java面试题-基础篇四Java面试题-基础篇五Java面试题-javaweb篇六Java面试题-jav...
2019-07-31 11:45:18
28748
17

原创 设计模式内容聚合
分类整理一些内容,方便需要时回过头来看,整理不易,如有疏漏,请多担待!之后要查看这篇文章,公众号后台回复 “设计模式聚合”无灵魂,不模式。设计模式是什么鬼(初探)设计模式是什么鬼(原型)设计模式是什么鬼(单例)设计模式是什么鬼(适配器)设计模式是什么鬼(策略)设计模式是什么鬼(状态)设计模式是什么鬼(模板方法)设计模式是什么鬼(门面)设计模式是...
2019-07-31 11:44:40
2153

原创 多线程内容聚合
分类整理一些内容,方便需要时回过头来看,整理不易,如有疏漏,请多担待!之后要查看这篇文章,公众号后台回复 “多线程聚合”当我们在谈论高并发的时候究竟在谈什么?Java并发系列(1)AbstractQueuedSynchronizer源码分析之概要分析Java并发系列(2)AbstractQueuedSynchronizer源码分析之独占模式Java并发系列(3)Abstra...
2019-07-31 11:44:13
2491
5

原创 Mybatis内容聚合
分类整理一些内容,方便需要时回过头来看,整理不易,如有疏漏,请多担待!之后要查找这篇文章,可以直接在Java知音公众号后台回复 “mybatis聚合”提升开发效率的一款mybatis开发神器面试官:你分析过mybatis工作原理吗?Mybatis架构与原理通过源码分析MyBatis的缓存了解Mybatis的工作原理吗MyBatis拦截器原理探...
2019-07-31 11:43:29
3415

原创 IntelliJ IDEA内容聚合
分类整理一些内容,方便需要时回过头来看,整理不易,如有疏漏,请多担待!之后要查看这篇文章,公众号后台回复 “idea聚合”已整理的分类列表1.SpringBoot内容聚合2.面试题内容聚合3.设计模式内容聚合4.排序算法内容聚合5.多线程内容聚合6.Mybatis内容聚合以下是正文:IntelliJ IDEA 从入门到上瘾教程,2...
2019-07-31 11:42:51
2249
2
转载 使用 Spring AOP 优雅的实现异步文件上传
前言相信很多系统里都有这一种场景:用户上传Excel,后端解析Excel生成相应的数据,校验数据并落库。这就引发了一个问题:如果Excel的行非常多,或者解析非常复杂,那么解析+校验的过程就非常耗时。如果接口是一个同步的接口,则非常容易出现接口超时,进而返回的校验错误信息也无法展示给前端,这就需要从功能上解决这个问题。一般来说都是启动一个子线程去做解析工作,主线程正常返回,由子线程记录上传状态+校...
2023-09-21 09:40:58
6
转载 完全开源的低代码快速开发平台,毫无保留给个人及企业使用!
介绍本项目系统是一款低代码研发平台,基于SpringBoot+React前后端分离的Java快速开发框架。前端前端端采用React、TS4、tailwindcss、Hooks、Semi、函数式组件开发。使用formily实现表单设计器。使用ahooks一套高质量可靠的 React Hooks 库使用wangeditor进行富文本编辑使用react-grid-layout进行组件页面可拖拽布局后端后...
2023-09-20 09:40:24
12
转载 SpringBoot 最常用的50个注解(全是干货,干的要死!)
SpringBoot提供了很多注解,可以帮助我们快速构建应用程序。以下是SpringBoot最常用的50个注解:1)@SpringBootApplication作用:这是一个组合注解,包括了@Configuration、@EnableAutoConfiguration和@ComponentScan三个注解。用于标识SpringBoot应用程序的入口类。@Configuration:指示这个类是一个...
2023-09-19 09:40:36
14
转载 ELK 处理 SpringBoot 日志,真是太妙了!
在排查线上异常的过程中,查询日志总是必不可缺的一部分。现今大多采用的微服务架构,日志被分散在不同的机器上,使得日志的查询变得异常困难。工欲善其事,必先利其器。如果此时有一个统一的实时日志分析平台,那可谓是雪中送碳,必定能够提高我们排查线上问题的效率。本文带您了解一下开源的实时日志分析平台 ELK 的搭建及使用。ELK 简介ELK 是一个开源的实时日志分析平台,它主要由 Elasticsearch、...
2023-09-18 09:41:00
12
转载 Spring事务畅谈:深入讨论一下 @Transactional 注解
前言@Transactional 注解是我们在使用spring 相关内容时,经常需要使用的,网络上亦容易找到其使用方法和解析。我们在这里结合笔者的使用经验来,深入讨论一下 @Transactional 注解一、理解 Spring 事务我们在讨论Spring 的事务前,必须先了解计算机领域的“事务”,代表着什么含义。事务 其实就是一种机制,我们常说某某中间件支持“事务”,那么就代表他能实现事务的几种...
2023-09-17 10:40:25
17
转载 为什么 Java 中“1000==1000”为false,而”100==100“为true?
这是一个挺有意思的讨论话题。如果你运行下面的代码:Integera=1000,b=1000;System.out.println(a==b);//1Integerc=100,d=100;System.out.println(c==d);//2你会得到:falsetrue基本知识:我们知道,如果两个引用指向同一个对象,用==表示它们是相等的。如果两个引...
2023-09-16 10:40:38
16
转载 一个简单易用的家庭库存管理系统、已开源
今天要给大家推荐一个 GitHub 开源项目 hay-kot/homebox,该项目在 GitHub 有超过 1.4k Star,用一句话介绍该项目就是:“Homebox is the inventory and organization system built for the Home User”。项目介绍Homebox 是一个为家庭用户打造的库存和组织系统。在我们的日常生活中,我们经常会遇到...
2023-09-14 09:40:24
19
转载 SpringCloud 微服务迁移到 Kubernetes 容器化完整流程
k8s容器部署流程具体步骤:第一步:熟悉Spring Cloud微服务项目第二步:源代码编译构建第三步:构建项目镜像并推送到镜像仓库第四步:K8s服务编排第五步:部署服务所需的基础环境第六步:部署微服务程序第七步:部署微服务前端第八步:微服务对外发布熟悉Spring Cloud微服务项目微服务架构图源代码编译构建拉取仓库代码gitclonehttp://192.168.0.126/saas-w...
2023-09-13 11:04:27
31
转载 线上的接口响应时间太长,怎么排查?
不知道大家有没有遇到这种情况,接口业务逻辑写完后,用 postman 一调,发现接口响应时间好长,不得不对接口进行优化。但是此时接口的代码往往逻辑比较复杂,调用层次也比较多,很难定位到耗时较长的代码块遇到这种情况大家都是如何定位耗时代码块的呢?我看到很多人都是直接用System.currentTimeMillis()对代码进行埋点publicstaticvoidmain(String[]a...
2023-09-12 09:40:27
38
转载 一套干净的企业数据管理系统,拿来直接用
项目介绍此项目为企业数据管理系统的后端部分,前端部分请参考vue-admin,项目实现了菜单管理、用户管理、角色管理和权限管理四个基础模块,前端菜单管理结合动态路由可自由添加菜单。结合Shiro权限管理实现了菜单和按钮的权限控制。❝前端采用的是经典的vue + element-ui + axios,后端采用的是SpringBoot + MyBatis + Shiro + Logback + MyS...
2023-09-11 09:40:22
21
转载 SpringCloud 远程调用为啥要采用HTTP,而不是RPC?
关于SpringCloud远程调用采用HTTP而非RPC。首先SpringCloud开启Web服务依赖于内部封装的Tomcat容器,而今信息飞速发展,适应大流量的微服务,采用Tomcat处理HTTP请求,开发者编写Json作为资源传输,服务器做出相应的响应,可以更加的灵活处理业务数据,而HTTP协议是跨平台的,符合微服务B/C数据交互的方式,可以的一套服务器对应移动H5、App、小程序提供服务。R...
2023-09-10 10:40:29
39
转载 FastDFS+Nginx,轻轻松松搭建一个本地文件服务器
前言FastDFS是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服务,如相册网站、视频网站等等。FastDFS为互联网量身定制,充分考虑了冗余备份、负载均衡、线性扩容等机制,并注重高可用、高性能等指标,使用FastDFS很容易搭建一套高性能的文件服务器集群提供文件上传、...
2023-09-09 10:40:59
46
转载 又一款简洁好用的画流程图软件 excalidraw
一、背景之前工作中主要用两种画图工具,一个是 PlantUML ,一个是 Draw.io。PlantUML 画时序图的效率比较高,避免了拖拽的麻烦,尤其是最近有了 AI 的加持,效率又提升了一个台阶。Draw.io 主要用来画流程图、架构图,甚至最近喜欢用 draw.io 来画产品交互图。今天简单介绍另外一款简洁好用的画图工具 :https://excalidraw.com/二、简介2.1 基本介...
2023-09-08 16:36:01
41
转载 撸了一个简易的配置中心,顺带还给整合到了SpringCloud
最近突然心血来潮(就是闲的)就想着撸一个简单的配置中心,顺便也照葫芦画瓢给整合到SpringCloud。本文大纲配置中心的概述 随着历史的车轮不断的前进,技术不断的进步,单体架构的系统都逐渐转向微服务架构。虽然微服务架构有诸多优点,但是随着越来越多的服务实例的数量,配置的不断增多,传统的配置文件方式不能再继续适用业务的发展,所以急需一种可以统一管理配置文件应用,在此之下配置中心就诞生了。所以配置中...
2023-09-07 09:40:52
34
转载 Java实现添加文字水印、图片水印功能实战
本文介绍java实现在图片上加文字水印的方法,水印可以是图片或者文字,操作方便。java实现给图片添加水印实现步骤:获取原图片对象信息(本地图片或网络图片)添加水印(设置水印颜色、字体、坐标等)处理输出目标图片一、java实现给图片添加文字水印1.获取原图片对象信息第一步:获取需要处理的图片获取图片的方式,通常由两种:一种是通过下载到本地,从本地读取(本地图片);另外一种是通过网络地址进行读取(网...
2023-09-06 09:40:27
146
转载 Netty+SpringBoot 打造一个 TCP 长连接通讯方案
项目背景最近公司某物联网项目需要使用socket长连接进行消息通讯,捣鼓了一版代码上线,结果BUG不断,本猿寝食难安,于是求助度娘,数日未眠项目终于平稳运行了,本着开源共享的精神,本猿把项目代码提炼成了一个demo项目,尽量摒弃了其中丑陋的业务部分,希望与同学们共同学习进步。正文一、项目架构本项目使用了netty、redis以及springboot2.2.0二、项目模块本项目目录结构如下图:net...
2023-09-05 09:40:39
50
转载 从零开始,教你如何开发一款自己的 IDEA 插件!
idea插件介绍作为一枚程序员,平时最常用的ide就是IntelliJ IDEA。平时会用到各种各样的插件,通过插件的使用,提高自己的开发效率。idea具有全局性,安装好插件后,对idea生效,所有的工程均能找到。idea使用的便捷性,在固定的菜单中,或者右键即可看到该插件的使用入口专注度高,展示出来的内容均是自己需要关注的,不需要关注的就不会展示。可以专注思考自己要怎么用。和系统解耦,插件可以给...
2023-09-04 09:40:58
49
转载 不懂优雅停机,搞挂了线上服务,咋办?
公司项目是用 consul 进行注册的,在发布微服务的时候,总是会导致调用方出现一定几率的调用失败。一开始百思不得其解,后来咨询了资深的同事才知道:原来是服务下线的时候没有优雅停机,没有去 consul 将自己下线再停机,导致调用方拿到了旧的调用地址,导致调用失败!看来优雅停机还是一个蛮重要的知识点,可不能忽略,今天就让我们来盘盘它吧!什么是优雅停机?在 Linux 世界里,一切都是资源。当我们启...
2023-09-03 10:40:55
44
1
转载 企业级的消息推送架构设计,硬核!
构建企业级统一基础推送服务,支持通过多渠道推送,能够统一集成的电子邮件、短信、聊天、钉钉、企业微信和其他公共社交应用:聊天 - 微信Wechat/QQ站内推送通知(移动设备和Web浏览器)站外推送通知(移动设备,APP没有开启)短信(如登录密码、营销活动)电子邮件钉钉企业微信企业级统一基础推送服务,是一个通用特性,适用于所有现代分布式应用,无论采用何种编程语言和技术。推送能力的演进第一阶段(模块化...
2023-09-02 10:40:42
73
转载 Java 中的池化技术
我们平常的编码中,通常会将一些对象保存起来,这主要考虑的是对象的创建成本。比如像线程资源、数据库连接资源或者 TCP 连接等,这类对象的初始化通常要花费比较长的时间,如果频繁地申请和销毁,就会耗费大量的系统资源,造成不必要的性能损失。并且这些对象都有一个显著的特征,就是通过轻量级的重置工作,可以循环、重复地使用。这个时候,我们就可以使用一个虚拟的池子,将这些资源保存起来,当使用的时候,我们就从池子...
2023-09-01 09:40:08
61
转载 我是如何使用 Spring Retry 减少1000 行代码!
本文翻译自国外论坛 medium,原文地址:https://levelup.gitconnected.com/how-i-deleted-more-than-1000-lines-of-code-using-spring-retry-9118de29060❝使用 Spring Retry 重构代码的综合指南。❞问题介绍在我的日常工作中,我主要负责开发一个庞大的金融应用程序。当客户发送请求时,我们使...
2023-08-31 09:40:14
42
转载 号称国内首个集成开发环境工具 CEC-IDE ,涉嫌造假 !
喜大普奔8 月 21 日,在某 gov.cn 官网上有一篇文章作出以下报告:❝国内首款适配国产操作系统、自主可控的集成开发环境工具 CEC-IDE;国内首款数据安全极限生存保障产品——数据安全守护软硬件一体化产品;国内首款国密指纹认证鼠标……❞网友挖掘8 月 24 日,众多网友经过文件分析并在 vscode 官方仓库创建了编号为 #191279 和 #191229 的 issues,引来网友在该帖...
2023-08-30 09:40:35
91
转载 优化重复冗余代码的8种方式!
前言日常开发中,我们经常会遇到一些重复冗余的代码。大家都知道重复代码不好,它主要有这些缺点:可维护性差、可读性差、增加错误风险等等。最近呢,我优化了一些系统中的重复代码,用了好几种的方式,感觉挺有用的。所以本文给大家讲讲优化重复冗余代码的几种方式~抽取公用方法抽个工具类反射泛型继承和多态设计模式函数式LambdaAOP切面1. 抽取公用方法 抽取公用方法,是最常用的代码去重方式~比如这个例子,分别...
2023-08-29 09:40:40
48
转载 SpringCloud — 协同开发利器之动态路由
介绍不知道大家有没有在协同开发的过程中遇到这样的问题好几个人同时开发同一个服务上的不同模块,导致你需要调试的接口总是被路由到别人的服务上,非常影响调试的效率,而且人越多越难受,总是请求不到自己的服务如果只是自测还好,可以直接调用本地服务来避免这个问题,但是如果是和前端联调,前端又是统一请求的网关地址,那就有点麻烦了所以我就想能不能在开发调试的时候,让某个接口路由到指定的服务呢?于是我就实现了一个库...
2023-08-28 09:40:07
46
转载 跨域问题的几种解决方案
跨域(Cross-Origin)指的是在网络环境中,当一个网页的文档或脚本(例如JavaScript)尝试获取来自不同域名、不同协议或不同端口的资源时,就会发生跨域请求。同源策略是一种浏览器的安全策略,它限制了不同源之间的互相操作。同源策略要求两个网址具有相同的协议(如HTTP或HTTPS)、主机(域名)和端口号,即使两个网址在不同的子域名下,同源策略也会将其视为不同源,禁止跨域操作。跨域请求可能...
2023-08-27 10:40:19
57
1
转载 SpringBoot 统一功能处理
1.用户登录权限效验1.1 Spring AOP 用户统一登录验证的问题说到统一的用户登录验证,我们想到的第一个实现方案是 Spring AOP 前置通知或环绕通知来实现,具体实现代码如下:@Aspect@ComponentpublicclassUserAspect{//定义切点方法controller包下、子孙包下所有类的所有方法@Pointcut("exec...
2023-08-26 10:40:55
38
转载 SpringBoot+Actuator,打造一款强大的监控和管理系统
0.前言背景:一直零散的使用着Spring Boot 的各种组件和特性,从未系统性的学习和总结,本次借着这个机会搞一波。共同学习,一起进步。哈哈Spring Boot Actuator 是一个强大的监控和管理框架,它提供了一系列的监控端点,可以用于获取应用程序的状态、度量指标、健康检查、配置信息等。Actuator 的监控端点可以通过 HTTP 请求访问,并返回有关应用程序运行时信息的响应。使用 ...
2023-08-24 09:40:49
54
转载 SpringBoot+Redis BitMap 实现签到与统计功能
引言在各个项目中,我们都可能需要用到签到和 统计功能。签到后会给用户一些礼品以此来吸引用户持续在该平台进行活跃。签到功能,我们可以通过Redis中的 BitMap功能来实现一、Redis BitMap 基本用法BitMap 基本语法、指令签到功能我们可以使用MySQL来完成,比如下表:用户一次签到,就是一条记录,假如有1000万用户,平均每人每年签到次数为10次,则这张表一年的数据量为 1亿条每签...
2023-08-23 09:40:26
59
转载 Redis 热 key 是什么问题,如何导致的?有什么解决方案?
前言做一些C端业务,不可避免的要引入一级缓存来代替数据库的压力并且减少业务响应时间,其实每次引入一个中间件来解决问题的同时,必然会带来很多新的问题需要注意,比如缓存一致性问题。那么其实还会有一些其他问题比如使用Redis作为一级缓存时可能带来的热key、大key等问题,本文我们就热key(hot key)问题来讨论,如何合理的解决热key问题。正文背景❝热key是什么问题,如何导致的?❞一般来说,...
2023-08-22 09:40:50
42
转载 除了缓存,性能优化还可以这么搞?
01、引言:取与舍02、索引术03、缓存术04、压缩术05、预取术06、削峰填谷术07、批量处理术08、小结01、引言:取与舍软件设计开发某种意义上是“取”与“舍”的艺术。关于性能方面,就像建筑设计成抗震9度需要额外的成本一样,高性能软件系统也意味着更高的实现成本,有时候与其他质量属性甚至会冲突,比如安全性、可扩展性、可观测性等等。大部分时候我们需要的是:在业务遇到瓶颈之前,利用常见的技术手段将系...
2023-08-21 09:40:50
67
1
转载 从 Future 到 CompletableFuture:简化 Java 中的异步编程
引言在并发编程中,我们经常需要处理多线程的任务,这些任务往往具有依赖性,异步性,且需要在所有任务完成后获取结果。Java 8 引入了 CompletableFuture 类,它带来了一种新的编程模式,让我们能够以函数式编程的方式处理并发任务,显著提升了代码的可读性和简洁性。在这篇博客中,我们将深入探讨 CompletableFuture 的设计原理,详细介绍其 API 的使用方式,并通过具体的示例...
2023-08-20 10:40:12
44
转载 阿里这款多级缓存框架一定要掌握,很强大
0. 引言之前我们讲解了本地缓存ehcache组件,在实际应用中,并不是单一的使用本地缓存或者redis,更多是组合使用来满足不同的业务场景,于是如何优雅的组合本地缓存和远程缓存就成了我们要研究的问题,而这一点,阿里开源的jetcache组件帮我们实现了1. jetcache简介jetcache是阿里开源的基于java开发的缓存框架,支持多种缓存类型:本地缓存、分布式缓存、多级缓存。能够满足不同业...
2023-08-19 10:40:40
49
转载 巧用 MyBatis Plus 实现数据权限控制
前言平时开发中遇到根据当前用户的角色,只能查看数据权限范围的数据需求。列表实现方案有两种,一是在开发初期就做好判断赛选,但如果这个需求是中途加的,或不希望每个接口都加一遍,就可以方案二加拦截器的方式。在mybatis执行sql前修改语句,限定where范围。当然拦截器生效后是全局性的,如何保证只对需要的接口进行拦截和转化,就可以应用注解进行识别因此具体需要哪些步骤就明确了创建注解类创建拦截器实现I...
2023-08-18 09:40:45
52
转载 图解 SQL 的执行顺序,一目了然!
这是一条标准的查询语句:这是我们实际上SQL执行顺序:我们先执行from,join来确定表之间的连接关系,得到初步的数据where对数据进行普通的初步的筛选group by 分组各组分别执行having中的普通筛选或者聚合函数筛选。然后把再根据我们要的数据进行select,可以是普通字段查询也可以是获取聚合函数的查询结果,如果是集合函数,select的查询结果会新增一条字段将查询结果去重disti...
2023-08-17 09:40:04
40
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人