Spring扩展接口(1):ApplicationContextInitializer
在此系列文章中,我总结了Spring扩展接口,以及各个扩展点的使用场景。并整理出一个bean在spring中从被加载到初始化到销毁的所有可扩展点的顺序调用图。这样,我们也可以看到bean是如何一步步加载到spring容器中的。 ApplicationContextInitializer ...[2023/9/25]
入门篇-其之四-字符串String的简单使用
什么是字符串? 在Java编程语言中,字符串用于表示文本数据。 字符串(String)属于引用数据类型,根据String的源码,其头部使用cla 进行修饰,属于类,即引用数据类型。 字符串的表示 字符串使用双引号""表示,在双引号中你可以写任意字符。 和前面定义并初始化基本数据类型的变...[2023/9/25]
SpringBoot WebSocket STOMP
SpringBoot WebSocket STOMP 关键词:Springboot, WebSocket, STOMP, broadcast, sendToUser, Me ageMapping, SubscribeMapping, convertAndSendToUser STOMP是一种发...[2023/9/25]
Java SE 21 新增特性
Java SE 21 新增特性 作者:Grey 原文地址: 博客园:Java SE 21 新增特性 CSDN:Java SE 21 新增特性 源码 源仓库: Github:java_new_features 镜像仓库: GitCode:java_new_features Record ...[2023/9/25]
两个例子带你入门 Disruptor
Disruptor 是英国外汇交易公司 LMAX 开发的一个高性能队列。很多知名开源项目里,比如 canal 、log4j2、 storm 都是用了 Disruptor 以提升系统性能 。 这篇文章,我们通过两个例子一步一个脚印帮助同学们入门 Disruptor 。 1 环形缓冲区 下图展示...[2023/9/20]
Dubbo3应用开发—XML形式的Dubbo应用开发和SpringBoot整合Dubbo开发
Dubbo3程序的初步开发 Dubbo3升级的核心内容 易?性 开箱即?,易?性?,如 Java 版本的?向接?代理特性能实现本地透明调?功能丰富,基于原?库或轻量扩展即可实现绝?多数的 微服务治理能?。更加完善了多语言支持(GO PYTHON RUST) 超?规模微服务实践 ?性...[2023/9/20]
Spring Boot虚拟线程与Webflux在JWT验证和MySQL查询上的性能比较
早上看到一篇关于Spring Boot虚拟线程和Webflux性能对比的文章,觉得还不错。内容较长,我就不翻译了,抓重点给大家介绍一下这篇文章的核心内容,方便大家快速阅读。 测试场景 作者采用了一个尽可能贴近现实操作的场景: 从授权头信息中提取JWT 验证JWT并从中提取用户的Email 使...[2023/9/20]
前端设计模式:单例模式(Singleton)
00、基本概念 单例模式(Singleton Pattern),也称单体模式,就是全局(或某一作用域范围)唯一实例,大家共享、复用一个实例对象,也可减少内存开销。单例模式应该是最基础、也最常见的设计模式了。 ?常见场景: 全局状态vuex,Jquery中的全局对象$,浏览器中的w...[2023/9/19]
JDK21来了!附重要更新说明
JDK21 计划23年9月19日正式发布,虽然一直以来都是“版本随便出,换 8 算我输”,但这么多年这么多版本的折腾,如果说之前的 LTS版本JDK17你还觉得不香,那 JDK21还是有必要关注一下,因为会有一批重要更新发布到生产环境中,特别是千呼万唤的虚拟线程,虽然说这东西我感觉不需要的用不...[2023/9/19]
Dubbo3应用开发——架构的演变过程
Dubbo3应用开发——架构的演变过程 什么是Dubbo 早期Dubbo的定位; 基于Java的高性能,轻量级的RPC框架;SOA【Service-Oriented Architecture ?向服务的架构】 = RPC+服务治理; 2018年阿?巴巴把这个框架捐献给了 Apache...[2023/9/19]
支持JDK19虚拟线程的web框架,之四:看源码,了解quarkus如何支持虚拟线程
欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https: github.com/zq2599/blog_demos 本篇概览 本篇是《支持JDK19虚拟线程的web框架》系列的第四篇,主要内容是阅读quarkus源码,开阔眼界,了解框架级别的软件是如何使用虚拟线...[2023/9/19]
软件设计模式系列之七——原型模式
1 模式的定义 原型模式(Prototype Pattern)是一种创建型设计模式,其主要目的是通过复制现有对象来创建新对象,而不是使用构造函数。原型模式将对象的创建委托给原型对象,通过克隆(复制)来生成新对象,这种方式可以避免对象的重复初始化,提高性能,并使对象的创建更加灵活和动态。 原型模...[2023/9/18]
快速搭建SpringBoot3.x项目
写在前面 上一小节中我们从0到1 使用Vite搭建了一个Vue3项目,并集成了Element Plus 实现了一个简单的增删改查页面。 这一篇中我们将使用IDEA快速搭建一个SpringBoot3.x的项目。 一、创建项目 1、File->new->project 2、选择...[2023/9/18]
java中有哪些并发的List?只知道一种的就太逊了
java中有很多list,但是原生支持并发的并不多,我们在多线程的环境中如果想同时操作同一个list的时候,就涉及到了一个并发的过程,这时候我们就需要选择自带有并发属性的list,那么java中的并发list到底有哪些呢?今天要给大家介绍的是ArrayList、CopyOnWriteArrayL...[2023/9/15]
深入浅出:SPI机制在JDK与Spring Boot中的应用
本文分享自华为云社区《Spring高手之路14——深入浅出:SPI机制在JDK与Spring Boot中的应用》,作者:砖业洋__ 。 Spring Boot不仅是简化Spring应用开发的工具,它还融合了许多先进的机制。本文深入探讨了Spring Boot中与Java的标准SPI相似的机制,揭...[2023/9/15]
软件设计模式系列之六——单例模式
1 模式的定义 单例模式(Singleton Pattern)是一种常见的创建型设计模式,其主要目的是确保一个类只有一个实例,并提供一个全局访问点来获取该实例。这意味着无论何时何地,只要需要该类的实例,都会返回同一个实例,而不是创建多个相同的实例。单例模式通常用于管理全局状态、资源共享或限制某些...[2023/9/15]
【23种设计模式】装饰模式(九)
前言 装饰模式,英文名称:Decorator Pattern。我第一次看到这个名称想到的是另外一个词语“装修”,我就说说我对“装修”的理解吧,大家一定要看清楚,是“装修”,不是“装饰”。在房子装修的过程中,各种功能可以相互组合,来增加房子的功用。类似的,如果我们在软件系统中,要给某个类型或者对象...[2023/9/14]
基于Protege的知识建模实战
一.Protege简介、用途和特点 1.Protege简介 Protege是斯坦福大学医学院生物信息研究中心基于Java开发的本体编辑和本体开发工具,也是基于知识的编辑器,属于开放源代码软件。这个软件主要用于语义网中本体的构建,是语义网中本体构建的核心开发工具,下面操作使用版本为5.5.0。...[2023/9/14]
Node.js vs. Spring Boot:Hello World 性能对决,谁更快一点?
前言: Spring Boot 在 Java 生态中备受欢迎,它是一款基于 Java 构建的轻量级服务端框架,主要用于 Web 服务。Spring Boot 的应用使得创建各类基于 Spring 的企业级应用变得异常简单。Node.js作为一种基于Chrome V8引擎的JavaScript运行...[2023/9/14]
Java实现常见查找算法
Java实现常见查找算法 查找是在大量的信息中寻找一个特定的信息元素,在计算机应用中,查找是常用的基本运算,例如编译程序中符号表的查找。 线性查找 线性查找(Linear Search)是一种简单的查找算法,用于在数据集中逐一比较每个元素,直到找到目标元素或搜索完整个数据集。它适用于任何类型的...[2023/9/13]
Jenkins 忘记密码|密码重置
I. 当前环境 OS Version : AlmaLinux release 8.8 Jenkins Version : 2.414.1 II. 操作步骤 2.1 修改配置文件 1. SSH 登录服务器后台,修改以下配置文件 vim /var/lib/jenk...[2023/9/13]
面试官问Spring 启动流程,把这篇文章甩给他!
大家好,我是三友~~ 今天来扒一扒Spring在启动过程中核心的12个步骤 之所以来写这篇文章,主要是来填坑的 之前在三万字盘点Spring 9大核心基础功能这篇文章的末尾中给自己挖了一个坑,提了一嘴有机会要写这么一篇文章 但是由于Spring启动过程并不复杂,所以后面就没写了 不过,...[2023/9/13]
ECMAScript13 中11个令人惊叹的 JavaScript 新特性
前言 与许多其他编程语言一样,JavaScript 也在不断发展。每年,该语言都会通过新功能变得更加强大,使开发人员能够编写更具表现力和简洁的代码。 小编今天就为大家介绍ES13中添加的最新功能,并查看其用法示例以更好地理解它们。 1.类 在ES13之前,类字段只能在构造函数中声明。与许多...[2023/9/13]
你准备好了吗,9月19日Java21要来了
前言 9月份的TIOBE编程语言榜单已公布,Python依然是第一,Java第四。 而这个月还有一个重要的事情,就是9月19日Java21将会全面发布,一段时间没关注的我一口老血喷在屏幕上。 我记得我写Java17新特性好像还没多久,Java你要不要这么努力。 大家可以看一下...[2023/9/13]
分布式锁的3种实现!附代码
分布式锁是一种用于保证分布式系统中多个进程或线程同步访问共享资源的技术。同时它又是面试中的常见问题,所以我们本文就重点来看分布式锁的具体实现(含实现代码)。 在分布式系统中,由于各个节点之间的网络通信延迟、故障等原因,可能会导致数据不一致的问题。分布式锁通过协调多个节点的行为,保证在任何时刻只...[2023/9/13]
@Async注解详解 以及 可能遇到的各种问题
一、简介 1)在方法上使用该@Async注解,申明该方法是一个异步任务; 2)在类上面使用该@Async注解,申明该类中的所有方法都是异步任务; 3)方法上一旦标记了这个@Async注解,当其它线程调用这个方法时,就会开启一个新的子线程去异步处理该业务逻辑。 4)使用此注解的方法的类对象,必须是...[2023/9/13]
再聊Java Stream的一些实战技能与注意点
大家好,又见面了。 在此前我的文章中,曾分2篇详细探讨了下JAVA中Stream流的相关操作,2篇文章收获了累计 10w+阅读、2k+点赞以及 5k+收藏的记录。能够得到众多小伙伴的认可,是技术分享过程中最开心的事情。 吃透JAVA的Stream流操作,多年实践总结 讲透JAVA Strea...[2023/9/13]
聊聊数据库事务内嵌TCP连接
最近再看项目代码,发现很多的service里面,喜欢在事务内部再去调用HTTP请求,简单分析下此种方式的利弊与解决策略。 概述 在数据库内部嵌套TCP连接(一般是HTTP调用或是RPC远程调用)。 @Transactional(rollbackFor = Exception.cla ) pu...[2023/9/13]
支持JDK19虚拟线程的web框架,之一:体验
欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https: github.com/zq2599/blog_demos 关于虚拟线程 随着JDK19 GA版本的发布,虚拟线程(来自Project Loom)这一特性也闪亮登场,虚拟线程是 JDK 而并非OS 实现的轻...[2023/9/13]
SpringBoot + 自定义注解,实现用户操作日志(支持SpEL表达式)
背景 一个成熟的系统,都会针对一些关键的操作,去创建用户操作日志。 比如: XX人创建了一条订单,订单号:XXXXXXXXX 因为操作人或者订单号是动态的,所以有些开发人员,不知道获取,就将这种操作日志和业务代码融在一起。 我们当然要杜绝这种现象,一定会有更好的解决方案。 当前项目...[2023/9/11]
Java开发面试--nacos专区
1、 Nacos是什么? 请简要介绍Nacos是什么以及它的主要功能和用途。 答: 简介: Nacos是一个开源的、高性能、动态服务发现、配置和服务管理平台,通常用于微服务架构中。Nacos的名称来源于"Naming"(服务发现)、"Configuration"(配置管理)和"Serv...[2023/9/10]
Web攻防--Java_SQL注入--XXE注入-- SSTI模板注入--SPEL表达式注入
预编译 编译器在编译sql语句时,会依次进行词法分析、语法分析、语义分析等操作, 预编译技术会让数据库跳过编译阶段,也就无法就进行词法分析,关键字不会被拆开,注入语句也就不会被识别为SQL的关键字,从而防止恶意注入语句改变原有SQL语句本身逻辑。 Java_JDBC注入 在使用JDBC进行数...[2023/9/10]
Jmeter获取Websocket多帧消息的实现方法
由于需要对WebSocket进行压力测试,因此又回归到了JMeter的使用。网络上缺少具体的获取多帧消息的操作,且自己也踩了两个坑,总结一下可行的操作供大家参考。 一、情况说明 被测试的W...[2023/9/10]
Spring Boot 中使用 Poi-tl 渲染数据并生成 Word 文档
本文 Demo 已收录到 demo-for-all-in-java 项目中,欢迎大家 star 支持!后续将持续更新! 前言 产品经理急冲冲地走了过来。「现在需要将按这些数据生成一个 Word 报告文档,你来安排下」 项目中有这么一个需求,需要将用户填写的数据填充到一个 Word 文...[2023/9/10]
mac安装nvm
系统:macos catalina 版本:10.15.7 一.安装nvm 打开终端执行这个命令 安装的版本是 v0.39.1 curl -o- [https: raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh](https: r...[2023/9/10]
Spring中事务的传播行为有哪些?
Spring中事务的传播行为有哪些? 现在我们来谈一个场景,再来引出事务传播行为这个概念。现在有methodA( ) 和 methodB( ),而且两个方法都显示的开启了事务,那么methodB( )是开启一个新事务,还是继续在methodA( )这个事务中执行,就取决于事务的传播行为了。 S...[2023/9/10]
小知识分享:控制层尽量别暴露这样的接口,避免横向越权。
前言 谈不上是多么厉害的知识,但可能确实有人不清楚或没见过。 我还是分享一下,就当一个小知识点。 如果知道的,就随便逛逛,不知道的,Get到了记得顺手点个赞哈。 正文 1、接口别随便暴露 当一个项目的维护周期拉长的时候,不断有新增的需求,如果经手的人也越来越多,接口是会肉眼可见增多的...[2023/9/9]
LeetCode297:hard级别中最简单的存在,java版,用时击败98%,内存击败百分之九十九
本篇概览 因为欣宸个人水平有限,在刷题时一直不敢面对hard级别的题目,生怕出现一杯茶一包烟,一道hard做一天的窘境 这种恐惧心理一直在,直到遇见了它:LeetCode297,建议不敢做hard题的新手们速来围观,拿它练手,轻松找到自信 题目简介 二叉树的序列化与反序列化 ...[2023/9/9]
Java 中的日期时间总结
前言 大家好,我是 god23bin,在日常开发中,我们经常需要处理日期和时间,日期和时间可以说是一定会用到的,现在总结下 Java 中日期与时间的基本概念与一些常用的用法。 基本概念 日期(年月日,某一天):2023-01-05 时间(时分秒,可具体到某一天某一刻):18:00:0...[2023/9/9]
Java程序员学vue3最好的方式就是搭建后台管理模板
前言 作为Java程序员,vue3还是有必要学的,毕竟是国内最受欢迎的前端JS框架,你现在接手的项目,前端部分几乎都会和vue沾边,尤其是中小企业。 vue3作为新的大版本,相较于vue2改动还是很多的,目前企业中很多新项目的前端实际上已经是以vue3为主了。 比如我所在的互联网公...[2023/9/9]
Sermant类隔离架构:解决JavaAgent场景类冲突的实践
本文分享自华为云社区《Sermant类隔离架构解析——解决JavaAgent场景类冲突的实践》,作者:华为云开源。 Sermant是基于Java字节码增强技术的无代理服务网格,其利用Java字节码增强技术为宿主应用程序提供服务治理功能。因深知JavaAgent场景中类冲突问题会造成的影响,Se...[2023/9/9]
浅聊一下SpringMVC的核心组件以及通过源码了解其执行流程
浅聊一下SpringMVC的核心组件以及通过源码了解其执行流程 MVC作为WEB项目开发的核心环节,正如三个单词的分解那样,Controller(控制器)将View(视图、用户客户端)与Model(javaBean:封装数据)分开构成了MVC,今天我们浅聊一下SpringMVC的相关组件以及通过...[2023/9/9]
BeanUtils.copyProperties:曾经是我的女神,现在是我的毒药。
前言 BeanUtils.copyProperties十有八九是你这些年工作中用的很多的其中一个,不管是Apache的还是Spring的。 网上的解释浩如烟海,我这边用一个超简单的例子直观展示给你看。 以后就记住了,能不用就不用。 正文 1、网上的解释 我收纳了几个网上最典型...[2023/9/6]
前瞻|Java 21 新特性 String Templates(字符串模版)
在日常写Java的时候,对于字符串的操作是非常普遍的,其中最常见的就是对字符串的组织。也因为这个操作非常普遍,所以诞生了很多方案,总下来大概有这么几种: 使用+拼接 使用StringBuffer和SpringBuilder String::format and String::formatte...[2023/9/6]
地表最帅缓存Caffeine
简介 缓存是程序员们绕不开的话题,像是常用的本地缓存Guava,分布式缓存Redis等,是提供高性能服务的基础。今天敬姐带大家一起认识一个更高效的本地缓存——Caffeine。 Caffeine Cache使用了基于内存的存储策略,并且支持高并发、低延迟,同时还提供了缓存过期、定时刷新、缓...[2023/9/6]
ThreadLocal:线程中的全局变量
最近接了一个新需求,业务场景上需要在原有基础上新增2个字段,接口新增参数意味着很多类和方法的逻辑都需要改变,需要先判断是否属于该业务场景,再做对应的逻辑。原本的打算是在入口处新增变量,在操作数据的时候进行逻辑判断将变量进行存储或查询。 如果全链路都变更入参和结构,很明显代码上很不优雅,后续如果...[2023/9/6]
给你的 SpringBoot 工程部署的 jar 包瘦瘦身吧!
之前有写过一篇有关maven插件的文章:spring-boot-maven-plugin插件详解 一、需求背景 我们知道Spring Boot项目,是可以通过java -jar 包名 启动的。 那为什么Spring Boot项目可以通过上述命令启动,而其它普通的项目却不可以呢? 原因在于...[2023/9/6]
MQTT vs. XMPP,哪一个才是IoT通讯协议的正解
MQTT vs. XMPP,哪一个才是IoT通讯协议的正解 这是个有趣的话题! 先来聊几个小故事。 关于我和MQTT 我在人生第一个IoT项目里,第一次接触到MQTT协议。 我很快就理解了这个协议。因为,它和企业开发用的MQ产品实在是太像了。 在我职业生涯早期,是的,20年前,当时做一...[2023/9/6]
产品代码都给你看了,可别再说不会DDD(五):请求处理流程
这是一个讲解DDD落地的文章系列,作者是《实现领域驱动设计》的译者滕云。本文章系列以一个真实的并已成功上线的软件项目——码如云(https: www.mryqr.com)为例,系统性地讲解DDD在落地实施过程中的各种典型实践,以及在面临实际业务场景时的诸多取舍。 本系列包含以下文章: DD...[2023/9/4]
想让你的工作轻松高效吗?揭秘Java + React导出Excel/PDF的绝妙技巧!
前言 在B/S架构中,服务端导出是一种高效的方式。它将导出的逻辑放在服务端,前端仅需发起请求即可。通过在服务端完成导出后,前端再下载文件完成整个导出过程。服务端导出具有许多优点,如数据安全、适用于大规模数据场景以及不受前端性能影响等。 本文将使用前端框架React和服务端框架Spring B...[2023/9/4]