一个由public关键字引发的bug
先来看一段代码:
@Service
@Slf4j
public cla AopTestService {
public String name = "真的吗";
@Retryable
public void test(){
模拟业务操作
...[2023/3/14]
生产环境Java应用服务内存泄漏分析与解决
有个生产环境CRM业务应用服务,情况有些奇怪,监控数据显示内存异常。内存使用率99.%多。通过生产监控看板发现,CRM内存超配或内存泄漏的现象,下面分析一下这个问题过程记录。
1、服务器硬件配置部署情况
生产服务器采用阿里云ECS机器,配置是2HZ、8GB,单个应用服务独占,CRM应用独立部...[2023/3/14]
Spring Cloud Alibaba实现服务的无损下线功能
目录1、背景2、解决方案2.1 找到通过负载均衡组件获取可用服务信息的地方2.2 解决思路3、部分实现代码3.1 引入jar3.2 编写服务下线方法3.3 监听配置变更,清除服务缓存3.3.1 使@NacosConfigListener注解生效3.3.2 监听配置、清除缓存4、实现4.1 服务准...[2023/3/14]
AI来实现代码转换!Python转Java,Java转Go不在话下?
今天看到个有趣的网站,给大家分享一下。
该网站的功能很神奇,可以实现编程语言的转化。感觉在一些场景之下还是有点作用的,比如你原来跟我一样是做Java的,因为工作需要突然转Go。这个时候用你Java的经验 + 这个工具,或许可以起到一定的帮助作用。
工具的使用也很简单,只需要在左侧黏贴你想...[2023/3/14]
【建造者设计模式详解】Java/JS/Go/Python/TS不同语言实现
简介
建造者模式(Builder Pattern),也叫生成器模式,属于创建型模式。它使用多个简单的对象一步一步构建成一个复杂的对象。它允许你使用相同的创建代码生成不同类型和形式的对象。
当你希望使用代码创建不同形式的产品 (例如各种商品和订单) 时, 一些基本部件不会变,而其组合经常变化的时...[2023/3/14]
JAVA重试机制多种方式深入浅出JAVA重试机制多种方式深入浅出
重试机制在分布式系统中,或者调用外部接口中,都是十分重要的。
重试机制可以保护系统减少因网络波动、依赖服务短暂性不可用带来的影响,让系统能更稳定的运行的一种保护机制。
为了方便说明,先假设我们想要进行重试的方法如下:
@Slf4j
@Component
public cla HelloS...[2023/3/14]
Spring:现代Java开发的必备框架
目录Spring:现代Java开发的必备框架Spring创建bean的生命周期以及对应的接口和注解Spring使用三级缓存解决循环依赖的原理Spring使用三级缓存创建bean的过程Spring使用AOPSpringAOP的实现原理Spring使用事务管理Spring事务的原理DataSou...[2023/3/14]
【选择排序算法详解】Java/Go/Python/JS/C 不同语言实现【选择排序算法详解】Java/Go/Python/JS/C 不同语言实现
【选择排序算法详解】Java/Go/Python/JS/C 不同语言实现
说明
选择排序(Selection Sort)是一种简单直观的排序算法。跟冒泡、插入排序一样,它将数列分为已排序和待排序两个区间。首先在待排序序列中找到最小(或最大)的元素,追加到已排序序列中,然后继续从待...[2023/3/8]
JavaMail 邮件发送,有意思的附件名乱码 → 客户端正常,web端乱码
开心一刻
昨晚,媳妇很感伤的看着我
媳妇:以后岁数大了,我要走你前面去了,你再找个老伴
我:我不想找
媳妇:你找一个,不用替我守着,以后你说你头疼发烧,也得有个给你端水递药的呀
媳妇抹着眼泪:到老是个伴
我:我想找个年轻的
现在我左脸还有一个掌印,火辣辣的...[2023/3/8]
简易的工厂设计模式
工厂设计模式是一种创建型设计模式,它提供了一种创建对象的最佳方式,而无需暴露对象的创建逻辑。在工厂模式中,我们定义一个接口或抽象类,该接口或抽象类用于创建对象,但让子类决定要实例化的类。工厂方法模式使类的实例化延迟到其子类。
下面是一个完整的C#实现案例:
首先,我们定义一个接口,用于创建对...[2023/3/8]
SpringBoot实现定时发送邮件的三种方法案例详解SpringBoot实现定时发送邮件的三种方法案例详解
目录一、发送邮件的三种方法二、定时任务介绍1.@EnableScheduling2.@Scheduled三、前期准备工作1、登录QQ邮箱获取授权码第一步:进入QQ邮箱第二步:找到POP3/SMTP,并开启第三步:复制授权码2、pom.xml中的依赖3、在全局配置文件application.prope...[2023/3/8]
SpringBoot之@Value获取application.properties配置无效的解决
目录@Value获取application.properties配置无效问题@Value获取application.properties中的配置取值为Null解决方法正确做法总结 @Value获取application.properties配置无效问题
无效的原因主要是要注意@Value使用的注...[2023/3/8]
详解如何用Java实现对m3u8直播流抽帧
目录什么是抽帧什么是 FFmpeg什么是 JavaCV最简单的抽帧抽帧算法 什么是抽帧
抽帧(frame extraction)是指从视频流中提取一些特定的帧,通常是关键帧或者随机帧,以供后续处理。对于m3u8直播流,可以使用Java中的FFmpeg库来实现抽帧功能。
什么是 FFmpeg
...[2023/3/8]
SpringBoot对不同Bean注解的区别和使用场景说明
目录对不同Bean注解的区别和使用场景什么是Bean?注解@Bean @Component …等都有什么区别?SpringBoot注入对象冲突如何解决?SpringBoot的各种注解@Configuration总结 对不同Bean注解的区别和使用场景
什么是Bean?
谈Bea...[2023/3/8]
【基数排序算法详解】Java/Go/Python/JS/C不同语言实现
说明
基数排序(RadixSort)是一种非比较型整数排序算法,其原理是将整数按位数切割成不同的数字,然后按每个位数分别比较。由于整数也可以表达字符串(比如名字或日期)和特定格式的浮点数,所以基数排序也不是只能使用于整数。基数排序的发明可以追溯到1887年赫尔曼·何乐礼在列表机(Tabulat...[2023/3/6]
Solon2 与 Spring Boot 的区别
1、与 Springboot 的常用注解比较
Solon 2.2.0
Springboot 2.7.8
说明
@Inject *
@Autowired
注入Bean(by type)
@Inject("name")
@Qualifier+@Autowired
注入Bean(by ...[2023/3/3]
Java/.Net双平台核心,Jvm和CLR运行异同点
前言:
本篇以.Net 7.0.2 CLR 和 OpenJDk19参照,解析下它们各自调用函数的异同。
以下为个人理解。
概述
JDK大约5.9G,CLR大约7.6G,两者相差1.7G左右。
root@tang-virtual-machine:/home/tang# cd jdk-jd...[2023/3/3]
详细讲解23种设计模式
工厂方法模式(Factory Method Pattern)
工厂方法模式是一种创建型设计模式,它定义了一个用于创建对象的接口,但由子类决定要实例化的类是哪一个。工厂方法把对象的实例化推迟到子类。
代码示例:
csharpCopy codepublic interface IProduct
...[2023/3/3]
设计模式(十四)----结构型模式之组合模式
1 概述
对于这个图片肯定会非常熟悉,上图我们可以看做是一个文件系统,对于这样的结构我们称之为树形结构。在树形结构中可以通过调用某个方法来遍历整个树,当我们找到某个叶子节点后,就可以对叶子节点进行相关的操作。可以将这颗树理解成一个大的容器,容器里面包含很多的成员对象,这些成员对象即可是容器对...[2023/3/3]
SpringMVC基础源码分析(一)
实现Controller的三种方式分析
每种实现的方式对应的HanderAdapter都不同。
实现Controller接口
该接口对应的HanderAdapter为SimpleControllerHandlerAdapter。
使用案列:
public cla LeContr...[2023/3/3]
微软出品自动化神器【Playwright+Java】系列(十)元素定位详解
一、写在前面
又有很久没更文了,真的是被催婚搞的整个人情绪特别不好,如果硬要形容的话,那就是没法跟人正常沟通,一点就着,做什么都没耐心,看什么都烦,简直没救了...
也是偶然发现的,自己居然没写关于Playwright的元素定位,这不是自动化测试的重中之重,怎么可以忘,马上安排!
二、元素定位...[2023/3/3]
JavaSE基础 (全网最全知识点)
背景介绍
java运行机理(即使编译型语言,又是解释型语言)
编译型语言(如:c语言)
源代码需要通过预编译形成可执行文件,再由系统执行该文件形成可识别的二进制文件
解释型语言
边执行边转换。源代码先翻译成中间代码,解释器(类似于JVM)再对中间代码进行解释运行,每执行一次都...[2023/2/28]
三天吃透Java并发八股文!
本文已经收录到Github仓库,该仓库包含计算机基础、Java基础、多线程、JVM、数据库、Redis、Spring、Mybatis、SpringMVC、SpringBoot、分布式、微服务、设计模式、架构、校招社招分享等核心知识点,欢迎star~
Github地址:https: github...[2023/2/28]
设计模式(十三)----结构型模式之桥接模式
1 概述
现在有一个需求,需要创建不同的图形,并且每个图形都有可能会有不同的颜色。我们可以利用继承的方式来设计类的关系:
我们可以发现有很多的类,假如我们再增加一个形状或再增加一种颜色,就需要创建更多的类。
试想,在一个有多种可能会变化的维度的系统中,用继承方式会造成类爆炸,扩展起来不灵...[2023/2/28]
这些 JavaScript 笔试题你能答对几道?
收藏 javascript-questions 这个仓库很久了,趁着周末来锻炼下自己的 JS 基础水平
因为逐渐也在承担一些面试工作,顺便摘录一些个人觉得比较适合面试的题目和方向
事件流(捕获、冒泡)
源链接
以下代码点击结果是啥?
<div onclick="console.lo...[2023/2/27]
@Transactional千万不要这样用!!踩坑了你都可能发现不了!!!
前阵子接手了一段同事之前的代码,里面用到了@Transactional注解,了解Spring的小伙伴肯定知道,@Transactional是Spring提供的一种控制事务管理的快捷手段。但是我这段程序在运行的时候,经常出现莫名其妙的问题,连夜研究了好久才搞清楚,在这里记录一下, 避免大家入坑...[2023/2/27]
Spring注解篇,学完注解深入了解SpringBoot更容易Spring注解篇,学完注解深入了解SpringBoot更容易
由于Spring Boot项目底层也都是Spring,使用Spring Boot就需要对Spring的注解有一定的了解,这次就把Spring的部分注解聊一下。熟悉了Spring的注解使用Spring Boot开发更是得心应手。
@ComponentScan:用于指定扫描包的路径,只有在它指定的...[2023/2/27]
我有一篇Java Stream使用手册,学了就是你的了!
原创:扣钉日记(微信公众号ID:codelogs),欢迎分享,非公众号转载保留此声明。
简介
日常编程工作中,Java集合会经常被使用到,且经常需要对集合做一些类似过滤、排序、对象转换之类的操作。
为了简化这类操作,Java8添加了一套新的Stream API,使用方式就像写SQL一样,...[2023/2/27]
JavaScript 如何验证 URL
前言
当开发者需要为不同目的以不同形式处理URL时,比如说浏览器历史导航,锚点目标,查询参数等等,我们经常会借助于JavaScript。然而,它的频繁使用促使攻击者利用其漏洞。这种被利用的风险是我们必须在我们的JavaScript应用程序中实现URL验证的原因。
URL验证检查URL是否遵循正...[2023/2/24]
Spring Boot自动配置原理懂后轻松写一个自己的starter
目前很多Spring项目的开发都会直接用到Spring Boot。因为Spring原生开发需要加太多的配置,而使用Spring Boot开发很容易上手,只需遵循Spring Boot开发的约定就行了,也就是约定大于配置,无需觉得它神奇,它的底层都是使用的Spring。聊完这个原理带着大家轻松写一...[2023/2/22]
三分钟实战手写Spring Boot Starter
1 背景
在平时的开发中,开发的同学会把一些通用的方法,写成一个工具类,例如日期转换的,JSON转换的等等,方便业务后续调用,使代码更容易维护。
如果一些更常用的方法,例如鉴权的,加解密的等等,几乎每个项目都会使用到,这时候开发的同学就会从以前的项目中再抄过来,随着项目的增多,几乎每个项目都有...[2023/2/22]
Java 优化:读取配置文件 "万能方式" 跨平台,动态获取文件的绝对路径 - Rainbow-Sea
Java 优化:读取配置文件 "万能方式" 跨平台,动态获取文件的绝对路径
每博一文案
往事不会像烟雾似的飘散,将永远像铅一般沉重地浇铸在心灵的深处。
不过,日常生活的纷繁不会让人专注地沉湎于自己的痛苦
不幸,即使人的心灵伤痕累累,也还得要去为现实中的生存和发展而挣扎。
...[2023/2/22]
详解Java中对象池的介绍与使用
目录1. 什么是对象池2. 对象池解决什么问题3. 对象池的优缺点3.1 对象池的优点3.2 对象池弊端4. 对象池有什么特征5. 池的大小选择6. 对象池的使用6.1 接入6.2 实现线程池工厂6.3 初始化6.4 使用 1. 什么是对象池
对象池,顾名思义就是一定数量的已经创建好的对象(Ob...[2023/2/22]
Java使用ThreadLocal实现当前登录信息的存取功能
目录一、使用ThreadLocal实现当前登录信息的存取1,写一个工具类用于存取用户id2、在用户登录的时候我们在过滤器中可以获取用户的id,这个时候我们将用户id放入ThreadLocal中。二、总结 一、使用ThreadLocal实现当前登录信息的存取
在项目中我们增加一个员工有一些信息是需...[2023/2/22]
基于JavaScript实现图片裁剪功能基于JavaScript实现图片裁剪功能
目录一、图片文件的上传和读取二、图片展示和蒙层处理CSS clip-path三、裁剪框展示裁剪框的缩放点cursor 鼠标样式四、裁剪框移动事件五、裁剪框缩放操作六、完成裁剪功能drawImage后记 在前端开发中,当遇到图片或头像上传等功能时,有尺寸分辨率限制的话,就需要用到图片的裁剪功能。想了解...[2023/2/22]
SpringCloud OpenFeign基本介绍与实现示例
目录介绍常用注解代码实现注意事项 介绍
在上面一篇介绍Nacos的文章最后,两个服务的相互调用是用的RestTemplate类完成的。但这种方式不是很推荐,更佳的方式是用OpenFeign组件去调用。OpenFeign是官方推出的服务调用和负载均衡组件,基于Ribbon和...[2023/2/22]
【多线程与高并发】- synchronized锁的认知
synchronized锁的认知
??生命不息,写作不止
?? 继续踏上学习之路,学之分享笔记
?? 总有一天我也能像各位大佬一样
?? 一个有梦有戏的人 @怒放吧德德
??分享学习心得,欢迎指正,大家一起学习成长!
目录synchronized锁的认知简介synchroniz...[2023/2/20]
看完这篇原型设计模式,还不会,请你吃瓜
概述
使用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。
在软件系统开发中,有时候会遇到这样的情况:我们需要用到多个相同实例,最简单直接的方法是通过多次调用new方法来创建相同的实例。
student s=new student();
student s1=new stud...[2023/2/20]
微软出品自动化神器【Playwright+Java】系列(九)多线程、重定向、弹出新窗口、截图、新页面、录制、页面对象模式操作微软出品自动化神器【Playwright+Java】系列(九)多线程、重定向、弹出新窗口、截图、新页面、录制、页面对象模式操作
写在前面
关于Playwright系列的文章,真的很久没有写了,今天一个不小心官方API部分过完了,下面将为大家逐一演示,感兴趣的同学可以自行动手练习。
API部分
多线程
直白点说就是多线程下Playwright的使用,示例代码如下:
package org.example;
impor...[2023/2/20]
Java 调用 PaddleDetection 模型
文章地址
介绍
训练好的模型要给业务调用,deepjavalibrary/djl:Java 中与引擎无关的深度学习框架 (github.com) 可以完成这件事,它支持使用 Java 调用 PyTorch、TensorFlow、MXNet、ONNX、PaddlePaddle 等引擎的模型(也支...[2023/2/20]
RxJava 异常时堆栈显示不正确?解决方法都在这里
本文首发我的博客,github 地址
大家好,我是徐公,今天为大家带来的是 RxJava 的一个血案,一行代码 return null 引发的。
前阵子,组内的同事反馈说 RxJava 在 debug 包 crash 了,捕获到的异常信息不全。(即我们捕获到的堆栈没有包含我们自己代码,都...[2023/2/20]
基于Java实现进制转换工具类的示例代码基于Java实现进制转换工具类的示例代码
目录背景原理十进制A转换为N进制RN进制R转换为十进制A应用延伸 背景
最近有个发送短信的功能,需要在短信中带有详情链接,链接中带有对应信息且要有校验功能,然而短信是按字数收费的,所以链接要尽可能的短。链接中带有数字类型参数,就想到通过低进制转高进制可以减少参数长度。
原理
低进制转换到...[2023/2/20]
Java实现快速生成词云图的示例代码
“词云”一词最早是由美国西北大学新闻学副教授、新媒体专业主任里奇戈登(Rich Gordon)提出的。词云(Word Cloud),又称文字云、标签云(Tag Cloud)、关键词云(Keyword Cloud),是对文本信息中一定数量的关键词出现的频率高低情况的一种可视化...[2023/2/20]
从实现到原理,聊聊Java中的SPI动态扩展从实现到原理,聊聊Java中的SPI动态扩展
原创:微信公众号 码农参上,欢迎分享,转载请保留出处。
八股文背多了,相信大家都听说过一个词,SPI扩展。
有的面试官就很喜欢问这个问题,SpringBoot的自动装配是如何实现的?
基本上,你一说是基于spring的SPI扩展机制,再把spring.factories文件和Enabl...[2023/2/17]
Springdoc替换swagger的实现步骤分解
目录前言一、springdoc介绍二、使用步骤1.引入库2.spring配置类3.常用的swagger注解和springdoc的对应关系4.一个接口类的示例5.配置文件配置6.WebMvc配置7.UI 前言
距离swagger上次发布版本已经过去两年多了,一直没有更新,与当前的springboo...[2023/2/17]
基于JavaScript编写一个翻卡游戏基于JavaScript编写一个翻卡游戏
目录前言翻卡动画生成随机分布数组均匀元素下的随机算法不均匀元素下的随机算法生成最终数组点击事件完整代码 前言
首先将这个游戏需求拆分成三个部分:
翻卡动画生成随机分布数组点击事件
翻卡动画
假如我们的盒子模型不是个二维的平面,而是有个三维的体积,让它可以有正反两面,那我们在做的时候是不...[2023/2/17]
SpringBoot多controller添加URL前缀的实现方法
目录前言一、配置文件内添加前缀配置二、配置映射的实体三、自定义注解四、自定义PathMatch添加前缀五、测试 前言
在某些情况下,服务的controller中前缀是一致的,例如所有URL的前缀都为/context-path/api/v1,需要为某些URL添加统一的前缀。
能想到的处理办法为...[2023/2/17]
搭个ChatGPT算法模型,离Java程序员有多远?搭个ChatGPT算法模型,离Java程序员有多远?
作者:小傅哥
博客:https: bugstack.cn
沉淀、分享、成长,让自己和他人都能有所收获!
最近 ChatGPT 很火,火到了各行各业。记得去年更多的还是码农最新体验后拿它搜代码,现在各行各业都进来体验,问它咋理财、怎么写报告和给小孩起名。?? 也因此让小傅哥在头条的一篇...[2023/2/15]
写给准备跳槽的小伙伴们的设计模式——工厂方法设计模式
概述
工厂方法模式(FactoryMethod),定义一个创建产品对象的工厂接口,让工厂子类决定实例化那一个产品类。我们把被创建的对象称为“产品”,把创建产品的对象称为“工厂”。如果要创建的产品不多,只要一个工厂类就可以完成,这种模式叫“简单工厂模式”,它不属于 23 种经典设计模式,它的缺点是...[2023/2/15]
java如何通过IP解析地理位置
目录java通过IP解析地理位置获取IP地址百度普通IP定位API获取地理位置java获取IP归属地(省、市)总结 java通过IP解析地理位置
在项目开发中,需要在登录日志或者操作日志中记录客户端ip所在的地理位置。
目前根据ip定位地理位置的第三方api有好几个,淘宝、新浪、百度等,这三...[2023/2/15]