import java.util.Objects
As seen in:
Sap Blogs,
DEV Community,
DZone,
cnblogs.com,
CSDN,
51cto.com,
Diario Tecnologia ES,
脚本之家
Is this you? As a journalist, you can create a free Muck Rack account to customize your profile, list your contact preferences, and upload a portfolio of your best work.
Claim your profile
Articles by import java.util.Objects
분산 환경에서 JWT 검증과 SSE 이벤트 처리, 무엇이 문제였을까
로그인한 서버와 검증하는 서버가 다른 경우: A 서버에서 로그인 -> 토큰 정보는 A의 메모리에만 저장 다음 요청이 Nginx에 의해 B 서버로 라우팅 -> B 메모리에는 토큰 정보 X 유효한 토큰인데도 인증이 거부됨. 로그아웃이 한 서버에만 적용되는 경우: A 서버에서 로그아웃 처리 -> B, C 서버의 메모리에는 토큰이 그대로 잔존 -> 이미 로그아웃했는데도 다른 서버를 통하면 여전히 인증되는 보안 구멍 "최대 동시 로그인 1대" 제약이 무력화되는 경우: 동시 로그인 수를 1로 제한 But, 서버별 메모리에서만 강제. 사용자가 3대에 나눠 로그인하면 실제로는 3개의 세션이 존재. 서버 재시작 시 전체 로그아웃: 배포나 재시작 한 번에 모든 사용자의 로그인 정보가 통째로 사라짐 정리하면, 상태(state)를 각 서버의 메모리에 들고 있는 한 분산 환경에서는 정합성을 보장할 수 없다는 것이 핵심 문제였습니다.
[Technical Note] 로그인 서비스 관련 오픈 소스 뜯어보기
이 프로젝트는 전 세계 스프링 개발자들의 '교과서' 같은 샘플 프로젝트다. 스프링 메인테이너들이 직접 관리하며, "스프링을 쓸 때는 이렇게 짜는 게 정석이다"라는 것을 보여주기 위해 만들어졌기 때문에 첫 오픈 소스로 선택했다.
Diario Tecnología
Representación del Grafo: La forma más común y eficiente para algoritmos como Dijkstra es una lista de adyacencia. Esto es esencialmente un mapa donde cada clave es un nodo y su valor es una lista de sus aristas salientes. Node (Nodo): Necesitamos una clase para representar cada vértice del grafo. Deberá tener un nombre (identificador) y una forma de almacenar su distancia actual desde el origen, lo cual es crucial para la cola de prioridad. Edge (Arista): Representa una conexión entre dos nodos.
2025-09-01 미니프로젝트 회고
📚 미니 프로젝트 회고 – 도서 관리 시스템 (CLI) 오늘은 금요일부터 만든 미니 프로젝트에 관해 코드를 정리하고 리뷰하는 시간을 가져본다. 내가 만든 프로그램은 도서 관리 시스템으로, 콘솔에서 숫자를 입력받아 원하는 작업으로 이동해 처리하는 CLI 프로그램이다. 🧾 프로젝트 개요 콘솔에서 숫자를 입력받아 원하는 기능으로 이동 입력값에 따라 도서 / 회원 / 관리자 기능 처리 🗂 클래스 구분 Book, User 클래스 데이터 구조 정의 Repository 데이터 생성 / 삭제 메서드 관리 기능 클래스 기능 단위 메서드 구현 Main 전체 흐름 제어 ⌨ 입력값에 따른 작업 도서 검색 도서 전체 목록 관리자 페이지 3-1. 도서 추가 3-2. 도서 삭제 3-3. 회원 리스트 출력 3-4.
Java Virtual Threads in Action: Optimizing MongoDB Operation
This article was written by Otavio Santana, a renowned contributor to the Java and open-source ecosystems. Virtual threads have become one of the most popular resources in Java and are trending inside the language. Indeed, this resource introduced a cheap way to create threads inside the JVM. In this tutorial, we will explain how to use it with MongoDB.
Writing DTOs With Java8, Lombok, and Java14+
In this article, I will try to help you understand how updated versions of Java and using the right set of libraries can reduce the development efforts and boilerplate code. In organizations, we tend to use one version for a longer period of time as upgrading versions of software is not quick and requires extensive testing. However, because of this thought, we generally miss using new features available with new versions as software providers continuously update their features.
学习高可靠Redis分布式锁实现思路 - 帅气的涛啊 - 博客园
一、分布式锁的必要性 在单体应用时代,我们使用ReentrantLock或synchronized就能解决线程安全问题。但当系统拆分为分布式架构后(目前大多数公司应该不会只是单体应用了),跨进程的共享资源竞争就成了必须要解决的问题。 分布式锁由此应运而生,但是必须解决三大核心问题: 竞态条件:多人操作共享资源,顺序不可控 锁失效:锁自动过期但业务未执行完,其他客户端抢占资源 / 加锁成功但未设置过期时间,服务宕机导致死锁 锁误删:客户端A释放了客户端B持有的锁。 二、核心实现解析(附源码) local lockKey = KEYS[1] -- 锁的键名,如"order_lock_123" local lockSecret = ARGV[1] -- 锁的唯一标识(建议UUID) local expireTime = tonumber(ARGV[2]) -- 过期时间(单位:秒) -- 参数有效性校验 if not expireTime or expireTime <= 0 then return "0" -- 参数非法直接返回失败 end -- 原子操作:SET lockKey...
hiberante-005: @Id
In Java Persistence API (JPA), the @Id annotation is used to mark a field as the primary key of an entity. This primary key uniquely identifies each record in the corresponding database table. Below is a detailed breakdown of the purpose and functionality of @Id. 1. Primary Key in JPA The primary key is a fundamental concept in relational databases and is crucial for ensuring the integrity and uniqueness of records. In JPA, marking a field with @Id makes it the unique identifier of the entity.
hibernate-004: PaymentId.class
import java.io.Serializable; import java.util.Objects; public class PaymentId implements Serializable { private Integer customer; // Must match the type of Payment.customer (Customer's ID) private String checkNumber; // Default constructor (required by JPA) public PaymentId() {} // Parameterized constructor for convenience public PaymentId(Integer customer, String checkNumber) { this.customer = customer; this.checkNumber = checkNumber; } // Getters and Setters (JPA needs these) public Integer...
hibernate-003: @IdClass(PaymentId.class)
The annotation @IdClass(PaymentId.class) is used in JPA (Java Persistence API) to define a composite primary key for the Payment entity. A composite key consists of multiple fields instead of a single primary key field. @IdClass specifies that the primary key of the Payment entity consists of multiple attributes. Instead of defining a single primary key column, we define multiple fields as the primary key.
Demystifying hashCode() and equals(): The Backbone of Java Hash Collections
When working with Java's hash-based collections like HashMap and HashSet, the methods hashCode() and equals() play a critical role. Understanding their interplay can help you avoid subtle bugs and optimize object comparison. Introduction While determining the equality of primitive values is straightforward, comparing custom objects requires additional guidance. For instance, collections like HashMap and HashSet rely on you to define how your custom objects should be differentiated.
Java Stream.distinct()
The Stream.distinct() method in Java is used to filter out duplicate elements from a stream, ensuring that the resulting stream contains only unique elements. It works based on the equals() method of the objects in the stream. This method is part of the Java Stream API introduced in Java 8 and is commonly used to handle collections or arrays with duplicate values. Example 1: Removing Duplicates from a List of Strings Imagine you have a list of names, and some names are repeated.
Agente de IA confiável em prod com Java + Quarkus + Langchain4j - Parte 2 - Memória
Autores @herbertbeckman - LinkedIn @rndtavares - LinkedIn Partes do artigo Agente de IA confiável em prod com Java + Quarkus + Langchain4j - Parte 1 - AI as Service Agente de IA confiável em prod com Java + Quarkus + Langchain4j - Parte 2 - Memória (este artigo) Agente de IA confiável em prod com Java + Quarkus + Langchain4j - Parte 3 - RAG (em breve) Agente de IA confiável em prod com Java + Quarkus + Langchain4j - Parte 4 - Guardrails (em breve) Introdução Quando criamos um agente, devemos...
Understanding the Java Record Class With Code Examples
Join the DZone community and get the full member experience. Join For Free Record is a special purpose class in Java that is designed to provide an efficient and easy way for programmers to carry aggregate data. Due to the introduction of this specific class, a new, context-sensitive keyword called record has been added into the Java language.
Redis实现幂等、防抖、限流等功能 - b1uesk9 - 博客园
本文章主要讲述如何使用Redis实现幂等、防抖、限流等功能。 幂等组件 import lombok.RequiredArgsConstructor; import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.stereotype.Component; import java.util.Objects; import java.util.concurrent.TimeUnit; /** * 消息队列幂等处理器 */ @Component @RequiredArgsConstructor public class MessageQueueIdempotentHandler { private final StringRedisTemplate stringRedisTemplate; private static final String IDEMPOTENT_KEY_PREFIX = "xxx:idempotent:"; /** * 判断当前消息是否消费过 *...
π Understanding Hashing in Java: Exploring HashMap, HashSet, and hashCode() π
Hashing in Java is an advanced concept that can enable one to store and retrieve data in the most effective manner. It does not matter whether one is experienced or fresher because knowing how hashing works helps take your programming skills to the next level, thus enabling your code to run way faster.
ThreadLocal原理解析及面试-CSDN博客
鱼跃鹰飞 已于 2024-10-02 17:16:11 修改 阅读量1.7k 收藏 15 点赞数 44 分类专栏: 架构设计 大厂真题 高并发 文章标签: 面试 职场和发展 java 后端 于 2024-10-01 18:32:28 首次发布 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 基本使用 讲原理之前,我简单写个demo小程序说说怎么使用 public class TestThreadLocal { public static void main(String[] args) throws InterruptedException { ThreadLocal<String> tl = new ThreadLocal(); /**主线程设置了一个值*/ tl.set("SSSSSs"); //tl.set(new Integer(2)); InheritableThreadLocal<String> itl = new InheritableThreadLocal<>(); itl.set("itlValue");...
【SpringBoot】SpringBoot使用mail实现登录邮箱验证-CSDN博客
📝个人主页:哈__ 期待您的关注 目录 1 login.html 2 register.html 在实际的开发当中,不少的场景中需要我们使用更加安全的认证方式,同时也为了防止一些用户恶意注册,我们可能会需要用户使用一些可以证明个人身份的注册方式,如短信验证、邮箱验证等。 一、前期准备 为了实现邮箱认证服务,我们需要提供出来一个邮箱作为验证码的发送者,这里我使用的是QQ邮箱。 首先打开QQ邮箱,然后找到设置,点击账号。 然后找到下方的邮件协议服务,打开。因为这里我已经打开了,而且服务开启也较为简单,需要我们发送一个短信到指定的号码,可能会收取一定的费用,不过不是很多,好像是几毛钱。 开启之后会给你一个授权码,一定要记住这个授权码,发邮件的时候需要这个。 核心的就是mail依赖,因为我这个项目东西不少,为了方便我就全拷贝过来了,可能有的用不到。 <properties> <java.version>1.8</java.version> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>...
【Java】图书管理系统-控制台输出-CSDN博客
项目原码Java项目: Java中一些常见的项目源码 (gitee.com)(在IDEA中运行,启动类在src -> Main 中运行) 图书管理系统 设计一个简单的控制台输出的图书管理系统,我们首先需要明确其基本功能、设计内容以及设计要求。这个系统可以包括以下几个核心模块:书籍管理、用户管理、借阅与归还管理。以下是一个基础的设计方案: 设计内容 数据模型设计 Book 类:包含书的属性,如 name(书名)、author(作者)、price(价格)、type(类型)、borrowed(借出情况)等。 User 类:包含用户属性,如 name(姓名)、Books(已借书籍列表,可以是Book对象的集合)。 功能模块设计 书籍管理 添加书籍 删除书籍 显示书籍信息 查询书籍(按书名查找) 用户管理 查找图书 借阅图书 归还图书 设计要求 用户交互友好性 系统应提供清晰的菜单选项,方便用户进行操作。 对于错误输入,系统应给出友好的提示信息,指导用户正确操作。 数据一致性与安全性 保证数据的一致性,例如在借书时检查书籍是否可借。...
spring整合openAI大模型之Spring AI
一、SpringAI简介 Spring AI 是一个面向 AI 工程的应用框架,其目标是将 Spring 生态系统的可移植性和模块化设计等设计原则应用到 AI 领域,并推动将 POJO 作为应用的构建块应用于 AI 领域。 简单地说,就是不再需要我们再去封装各种各样的类或者方法,直接用spring框架内置的方法,和大模型进行通信 官网地址https://spring.io/projects/spring-ai (1)聊天模型 OpenAI Azure Open AI Amazon Bedrock Cohere’s Command AI21 Labs’ Jurassic-2 Meta’s LLama 2 Amazon’s Titan Google Vertex AI Palm Google Gemini HuggingFace - access thousands of models, including those from Meta such as Llama2 Ollama - run AI models on your local machine MistralAI...
HTTP REST 方式调用WebService接口(wsdl)
2.1 打开对应的WebService地址,目的地址location即为HTTP REST方式需要调用的服务地址 2.2 在HTTP REST 请求头中添加SOAPAction字段 SOAPAction 可以提供关于 SOAP 消息中要调用的具体操作或方法的信息。这对于接收方来说是非常重要的,因为它帮助确定如何解析和处理收到的 SOAP 消息 如果在发起 SOAP 请求时未在 SOAPAction 中提供有效的操作或方法信息,请求接收方可能会根据其他信息(例如消息体中的内容)来确定应该执行的操作,或者可能会采取默认行为来处理请求 此时SOAPAction可设置为空或者WSDL中对应的Operation(PACSreturn) 2.3 Body内容为xml格式,内容即为SoapUI调用时传输的全部内容 import java.io.IOException; import java.nio.charset.Charset; import java.util.Objects; import org.apache.http.HttpEntity; import...
使用apache.commons.compress对文件进行压缩与解压缩的不同方式_commons-compress-CSDN博客
使用apache.commons.compress对文件进行压缩与解压缩的不同方式 依赖 <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-compress</artifactId> <version>1.21</version> </dependency> 话不多说,直接上代码 package com.common.utils; import lombok.extern.slf4j.Slf4j; import org.apache.commons.compress.archivers.ArchiveEntry; import org.apache.commons.compress.archivers.ArchiveInputStream; import org.apache.commons.compress.archivers.ArchiveOutputStream; import...
spring boot3整合邮件服务实现邮件发送功能
⛰️个人主页: 蒾酒 🔥系列专栏:《spring boot实战》 目录 测试 最近发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。 点击跳转到学习网站 内容概要 本文介绍了spring boot整合email服务,实现发送验证码,邮件(普通文本邮件、静态资源邮件、附件邮件)。 坚持看完相信对你有帮助。 同时欢迎订阅springboot系列专栏,持续分享spring boot的使用经验。 开通服务 实现email服务需要先将自己的邮箱开通POP3/IMAP服务才可以通过该邮箱发送邮件,开通步骤如下: 这里以QQ邮箱为例 https://wx.mail.qq.com/ 找到 POP3/IMAP.....服务这里开启你的服务,这里我已经开启了的。 开启成功会得到授权码 ,记住这个授权码。下面开始在spring boot中整合。 spring boot整合 pom.xml: <dependency> <groupId>org.springframework.boot</groupId>...
Java中使用JDBC获取MySQL数据库的名称、表名和字段名及相关信息_java 从jdbc字符串获取库名-CSDN博客
MySQL相关操作 前置条件:1.项目中需添加MySQL依赖;2.
Java之抽象类和接口-CSDN博客
1.抽象类概念 如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类, 比如动物类。没有实际工作的方法 , 我们可以把它设计成一个 抽象方法, 包含抽象方法的类我们称为 抽象类。 2.抽象类语法 在Java中,一个类如果被 abstract 修饰称为抽象类,抽象类中被 abstract 修饰的方法称为抽象方法,抽象方法不用给出具体的实现体。 // 抽象类:被abstract修饰的类 public abstract class Shape { // 抽象方法:被abstract修饰的方法,没有方法体 abstract public void draw(); abstract void calcArea(); // 抽象类也是类,也可以增加普通方法和属性 public double getArea(){ return area; } protected double area; // 面积 } 注意:抽象类也是类,内部可以包含普通方法和属性,甚至构造方法 3. 抽象类特性 1.
spring boot3单模块项目工程搭建-上(个人开发模板)
⛰️个人主页: 蒾酒 🔥系列专栏:《spring boot实战》 目录 common目录 service目录 mapper目录 entity目录 test目录 写在前面 本文介绍了springboot开发后端服务,单模块项目工程搭建。单模块搭建出完会出多模块项目搭建。坚持看完相信对你有帮助。 同时欢迎订阅springboot系列专栏,持续分享spring boot的使用经验。 上文衔接 本文衔接上文,可以看一下: 新版idea(2023)创建spring boot3项目_新版idea2023创建springboot3-CSDN博客https://blog.csdn.net/qq_62262918/article/details/135785412?spm=1001.2014.3001.5501 上文我们已经通过spring官网下载了一个模板,本文继续搭建一个前后端分离架构中后端接口服务单模块工程 单模块结构优缺点 单模块项目将所有代码放在一个 Maven 项目中。它通常适用于小型团队、个人、单一应用程序或简单的项目架构。 优点 简单:项目结构简单,适合初学者和小型团队。...
Custom Memory Pool: Creating memory pool for custom class
In this blog we are going to see how we can implement a string pool like cache for our own custom class. Problem statement: I want to create a Person class that stores name, ssn, address and email. but if i create a multiple person with the same name and ssn value, it should be considered the same person and no new object should be created in the heap. It should return the memory address of the old object.
SpringBoot项目实现日志打印SQL明细(包括SQL语句和参数)几种方式 - sum墨 - 博客园
我们在开发项目的时候,都会连接数据库。有时候遇到问题需要根据我们编写的SQL进行分析,但如果不进行一些开发或者配置的话,这些SQL是不会打印到控制台的,它们默认是隐藏的。下面给大家介绍几种常用的方法。 Mybatis框架是Java程序员最常用的数据库映射框架,MyBatis 允许你在已映射语句执行过程中的某一点进行拦截调用。默认情况下,MyBatis 允许使用插件来拦截的方法调用。那么我们可以根据这个机制来获取我们执行的sql语句以及参数。下面的SqlExecuteTimeCountInterceptor.java直接复制到SpringBoot项目就可以使用了。 1.
Project Reactor: About Fuseable interface ASYNC mode under the same thread
Last time I introduce how to use the SYNC mode of Fuseable interface to retrieve signal from pipeline. The disadvantage of SYNC mode is the singal sequence must exist in source (For example the source from Flux.just() or Flux.generate() function). In order to retrieve signal which is generated in indefinite time. ASYNC mode must be used. Below I will introduce the ASYNC mode which receives action that is triggered by the thread of the upstream operator.
Java获取IP地址及对应的归属地_java通过ip地址获取地区-CSDN博客
目录 前言 2.1 Ip2region 前言 细心的朋友们可能已经发现了,先在抖音、知乎、快手、小红书等这些平台已经上线了“网络用户显示 IP 的功能”,境外用户显示的是国家,国内的用户显示的省份,而且此项显示无法关闭,归属地强制显示。 作为一个努力搬砖的码农,我们肯定要来看一下这个功能是如何实现的,今天这篇文章,就来讲述一下这个功能是怎么实现的。 一、获取访问的IP地址 HttpServletRequest 获取 IP 首先我们来看一下,在 Java 中,是如何获取到 IP 属地的,主要有以下两步: 通过 HttpServletRequest 对象,获取用户的 【IP】 地址 通过 IP 地址,获取对应的【省份、城市】 我这里写一个工具类用于获取 IP 地址,因为用户的每次 Request 请求都会携带请求的 IP 地址放到请求头中,所以我们可以通过截取请求中的 IP 来获取 IP 地址,代码如下: package com.test.java.util; import lombok.extern.slf4j.Slf4j; import...
【Java】POI 解析有合并单元格的 Excel
将带有“合并单元格”的 Excel 进行解析,Excel 示例如下: Java 生态中 Excel 解析库比较多,下面介绍两种比较常用的库 Apache POI:POI 是用于读写 Microsoft Office 格式文件(如 Excel、Word 和 PowerPoint)的 Java 库。它提供了一组丰富的功能和 API,可用于读取和写入 Excel 文件的各种格式,如 XLS、XLSX 和 CSV 等。 EasyExcel是阿里巴巴开源的一个基于 Java 的简单、省内存的读写 Excel 的开源项目。EasyExcel 在尽可能节约内存的情况下支持读写百 M 级的 Excel 。EasyExcel 能大大减少占用内存的主要原因是在解析Excel时没有将文件数据一次性全部加载到内存中,而是从磁盘上一行行读取数据,逐个解析。EasyExcel 采用一行一行的解析模式,并将一行的解析结果以观察者的模式通知处理(AnalysisEventListener)。 在本示例中,将使用 POI 来解析 Excel 。需要注意的是 ,POI 对 xls 和 xlsx 格式的 Excel...
Java入门-CSDN博客
Java SE 黑马程序员 private:只能被自己访问和修改。 protected:自身,子类及同一个包中类可以访问。 default(默认):同一包中的类可以访问,声明时没有加修饰符,认为是friendly。 this只能调用本类的成员方法或成员变量 package com.xpzt.day07.demo05; public class Zi extends Fu { int num = 20; public Zi() { this(1); System.out.println("无参构造方法"); } public Zi(int num) { this(1, 2); System.out.println("一个参数构造方法"); } public Zi(int num1, int num2) { System.out.println("两个参数构造方法"); } public void method() { int num = 10; System.out.println(num); System.out.println(super.num);...
免费好用的 ip 地址查询工具-CSDN博客
0 概述 不知道各位有没有好奇过,下图这个效果是怎么做到的呢? 想要知道一个位置信息,要么就是使用 GPS,要么就是使用 IP 地址查询。但是 GPS 定位获取地址的前提是要打开它,IP 地址查询有在线查询,也有离线查询,我现在要介绍的这款工具,就是一个离线的 IP 地址库,名为:ip2region 它是一款很好用的离线 IP 地址定位库和 IP 定位数据管理框架,支持国内和国外的 IP 查询,Gitee 上已有 7.4K stars Gitee 地址:仓库地址 1 快速上手 我们已经了解了 ip2region 了,现在我们开始写一个 demo 测试一下 测试开始前,首先需要到上述仓库地址中,拉取代码到本地,进入 data 文件夹,把 ip2region.xdb 文件复制到 SpringBoot 项目中的 resources 资源目录下 补充:直接获取 ip2region.xbd 文件,可以关注微信公众号:EzCoding,回复 ip 即可获取 引入依赖 <dependency> <groupId>org.lionsoul</groupId>...
Java导出pdf格式文件-CSDN博客
controller层: @ApiOperation("导出") @GetMapping("/download") public void download(@RequestParam("userId") Long userId ,HttpServletResponse response) { reportResultService.generateWordXWPFDocument(userId,response); } serviceimpi层: /** * 下载word * @param userId * @param response */ // @Override // public void generateWordXWPFDocument(Long userId,HttpServletResponse response) { // try { // XWPFDocument doc = new XWPFDocument(); // List<ReportDetail> ReportDetail =...
数据结构哈希表(散列) 之Hash
声明: 此文章仅限于记录学习之用 , 受限于自身水平和理解能力 , 因此结论可能是不正确的. 如果您需要学习,建议参考其他文章 看了下网上一些大佬的教程, 写的云山雾绕的. 简单总结下吧. 以言简意赅为主. hash 就是把任意输入通过算法生成一个int值. 这个值就是放数据的地址, 然后在这个地址中存储数据. 注意: 不同的内容可能生成相同的哈希码, 这就是我们常说的hash冲突. 如何处理hash冲突问题,衍生了以下几套经典算法. 根据key获取到 hashCode, 取到内存地址, 然后把value存入此区域. 获取值也是同样道理. 上图是最简易的hash存取示范. 结合刚刚说的"不同内容的hashCode可能相同", 因此是有hash冲突覆盖的情况. 拉链寻址算法 从名字入手,可以更好的理解. 众所周知除了阿里巴巴喜欢胡乱造词, 大部分命名都有比较贴切的含义. 我看了下示例代码, 原来"拉链"不是衣服上的拉锁. 而是增加了y轴维度. 如果地址相同, 那就纵向排列. 拼多多这图最适合.
04-websocket并发场景下发送消息出错的解决方案_getbasicremote getasyncremote-CSDN博客
04-websocket并发场景下发送消息出错的解决方案 前言:上一篇文章,主要演示了websocket并发场景下发送消息出错的问题,本文首先填上一篇的埋下的坑,也会给出解决方案 1.1 getBasicRemote().sendText 与 getAsyncRemote().sendText 上一篇提到,spring封装的websocket在发送消息的时候,调用的是javax.websocket的getBasicRemote().sendText方法,但是javax.websocket是支持异步的,因为它提供了异步发送消息的方法 ... @Override public RemoteEndpoint.Async getAsyncRemote() { checkState(); return remoteEndpointAsync; } ... @Override public Future<Void> sendText(String text) { return base.sendStringByFuture(text); } ...
JavaFx+Mysql实现图书管理系统(内含完整代码和数据库建表)_javafx显示mysql数据库-CSDN博客
目录 前言 start.html Main类 userRegister.fxml UserRegister类 userLogin.fxml UserLogin类 mes_change.fxml MesChange类 book_brwaback.fxml BookBrwaback类 maLogin.fxml MaLogin类 user_ma.fxml UserMa类 book_ma.fxml BookMa类 brw_log.fxml BorrowLog类 前言 本篇文章主要是提供实现图书管理系统所有的代码。关键代码详解可参考下方文章(链接1)。 链接1: 若不太会使用sceneBuilder进行图形化界面,可参考我的另一篇文章(链接2)。 链接2: 一、系统分类展示 二、jdbc---连接数据库 import java.sql.*; import java.util.Objects; public class jdbc { /** * URL地址 */ private static final String URL =...
不止八股:阿里内部语雀一些有趣的并发编程笔试题2--手写限流器 - Cuzzz - 博客园
系列文章目录和关于我 0丶引入 笔者社招一年半经验跳槽加入阿里约1年时间,无意间发现一些阿里语雀上的一些面试题题库,出于学习目的在此进行记录。 这一篇主要写一些有趣的笔试题(非leetcode),这些有的考验并发编程,有的考验设计能力。 笔者不是什么技术大牛,此处笔试题充满主观思考,并不一定是满分答案,欢迎评论区一起探讨。 不止八股:面试题之外,笔者会更多的思考下底层原理,不只是简单的背诵。 下面这个题目也是笔者面试阿里笔试做过的一道笔试题,现在回想自己那时候写的也是一坨 1.题目-限流组件设计 网站或者API服务有可能被恶意访问导致不可用,为了防止流量过大,通常会有限流设计。 请实现一个 RateLimiter 类,包含 isAllow 方法。每个请求包含一个 resource 资源,如果resource 在 1 秒钟内有超过 N 次请求,就拒绝响应。 public interface IRateLimiter{ boolean isAllow(String resource); } 2.笔者的题解...
【国产之光】开年尝鲜--优秀的AI编码助手 Fitten Code
开年尝鲜高质量国产AI编码助手——FittenCode 前言 2024年刚刚开局,清华大学 与 非十科技 就发布了全新的 VSCode AI 编码助手—— FittenCode。 感谢我的大佬同学小金推荐,让我及时收到咨询,第一时间体验FittenCode! 截止至本文发文日期,FittenCode 可在 VSCode 商城下载并免费试用!借此契机,我索性将我自己的Copilot拿出来,与FittenCode做一个使用体验对比。此文就当是用户使用测评了! 由于我本人只是渣渣 Java 开发,并不懂很多AI知识,目前工作与生活中对AI仅略懂皮毛,日常仅使用AI而并无细致研究,因此本文只讨论如何使用FittenCode及Copilot,并不深入探究其原理。 当然了,还得事先说明,由于个人非专业测评工程师,样本有限,测评结果仅代表个人观点,轻喷。建议读者将本文当作单纯的“Fitten Code的使用”参考文章。 工具 VSCode 1.84 以上 GitHub Copilot 一个项目或一段代码 由于本人目前 是 Java 方向, 本文就用Java 演示啦。 测评维度...
【Spring Security】分布式鉴权的使用
🎉🎉欢迎来到我的CSDN主页!🎉🎉 🏅我是Java方文山,一个在CSDN分享笔记的博主。📚📚 🌟推荐给大家我的专栏《Spring Security》。🎯🎯 👉点击这里,就可以查看我的主页啦!👇👇 Java方文山的个人主页 🎁如果感觉还不错的话请给我点赞吧!🎁🎁 💖期待你的加入,一起学习,一起进步!💖💖 前言 我们都知道Spring Security是做认证鉴权的框架,为了一些不必要的麻烦,登录功能都是他们自己做的,那我们就需要将登录的功能交给Spring Security管理,但是他们做的东西肯定也是不满足于我们的需求,所以我们要在根据他们提供的代码上自定义,可以将自定义的用户信息获取逻辑集成到Spring Security中,从而实现基于数据库的用户身份认证。 再上一篇中我是通过实现UserDetailsService接口并重写loadUserByUsername方法完成的,但是后面我想了想不应该把代码放在UserServiceImpl层,所以我们需要创建一个类来继承UserServiceImpl将自定义用户身份认证的代码写入。 MyUserDetailsService...
MySQL数据库导入100万数据不同方式的性能差异-CSDN博客
本文将介绍MySQL数据库导入100万数据的三种方式性能比较。 三种方式分别为: (1)逐条INSERT (2)批量INSERT提交 (3)通过mysql自带的load data命令 应用场景:假设需要向100万个号码发送短信,收到了100万个号码txt文件,现需要将号码导入到数据库,通过短信系统发送短信。向数据库导入数据的场景还有很多,比如在新老系统切换的时候,需要将老系统的数据迁移导入到新系统,这些都可能涉及到大量数据导入的问题。 首先,我们先准备数据库表、100万个号码、生成insert语句的java代码、批量向数据库提交insert语句的java代码。 (1)数据库表如下: (2) 生成100万个号码 package com.fd.demo.common; import org.springframework.stereotype.Component; import java.io.*; /** * @Author: thinkpad * @Date: 2023-12-30 9:23 */ @Component public class TelephoneGenerate...
java实现学生管理系统(鸡础)-阿里云开发者社区
| 3天前 | SQL 分布式计算 NoSQL 快速实践: 通过 Flink CDC 一键整库同步 MongoDB 到 Paimon Apache Paimon (incubating) 是一项流式数据湖存储技术,可以为用户提供高吞吐、低延迟的数据摄入、流式订阅以及实时查询能力。 75495 3 3 | 7天前 | 弹性计算 并行计算 UED GPU实例使用--自动安装NVIDIA GPU驱动和CUDA组件 GPU 云服务器正常工作需提前安装正确的基础设施软件,对于搭载了 NVIDIA 系列 GPU卡的实例而言,如果把 NVIDIA GPU 用作通用计算,则需安装 NVIDIA GPU 驱动、 CUDA、cuDNN等软件。 100277 1 1 | 8天前 | 弹性计算 运维 监控 GPU实例使用--vGPU驱动自动安装和升级 为了适配最新的渲染软件,以及驱动稳定性的提升,vGPU实例的驱动需要定期进行升级,因为使用vgpu的客户多数为渲染和云游戏等业务场景,对vGPU驱动的快速升级和批量自动化要求比较高。 79578 1 1 | 8天前 | SQL 存储 关系型数据库...
SpringBoot整合Druid数据库连接池&多数据源&注解切换&动态添加_druidconfig多数据源-CSDN博客
<!-- 阿里数据库连接池 --> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactId> <version>1.2.16</version> </dependency> <!-- Mysql驱动包 --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> spring: datasource: # 数据源基本配置 username: 账号 password: 密码 url: jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai #...
SpringBoot(二)集成 Quartz
Quartz是一个广泛使用的开源任务调度框架,用于在Java应用程序中执行定时任务和周期性任务。它提供了强大的调度功能,允许您计划、管理和执行各种任务,从简单的任务到复杂的任务。 以下是Quartz的一些关键特点和功能: 灵活的调度器:Quartz提供了一个高度可配置的调度器,允许您根据不同的时间表执行任务,包括固定的时间、每日、每周、每月、每秒等。您可以设置任务执行的时间和频率。 多任务支持:Quartz支持同时管理和执行多个任务。您可以定义多个作业和触发器,并将它们添加到调度器中。 集群和分布式调度:Quartz支持集群模式,可以在多台机器上协调任务的执行。这使得Quartz非常适合大规模和分布式应用,以确保任务的高可用性和负载均衡。 持久化:Quartz可以将任务和调度信息持久化到数据库中,以便在应用程序重启时不会丢失任务信息。这对于可靠性和数据保持非常重要。 错过任务处理:Quartz可以配置在任务错过执行时如何处理,例如,是否立即执行、延迟执行或丢弃任务。 监听器:Quartz提供了各种监听器,可以用来监视任务的执行,以及在任务执行前后执行自定义操作。...
Flink(四)【DataStream API - Source算子】
开发者社区 大数据 文章 正文 2023-12-06 8 简介: Flink(四)【DataStream API - Source算子】 前言 ? ? ? ?
我在jdk8实现了jdk18的新特性-阿里云开发者社区
在自己身上,克服这个时代。——尼采 首先放jdk18的官方特性介绍地址:https://openjdk.java.net/jeps/420 我就不再过多解释了,直接贴代码吧~ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129...
2023 版 Java和python开发线性代数探索
前景提示 最近小伙伴问了一个题目,就是用Java开发线性代数,本身Java的能力并不是很擅长做这样的工作,需要计算的话还是用python开发更好,方便快捷,简单方便,但是,既然有这样的需求还是需要进行开发的,毕竟没有客户会管你多么费劲,只会说你开发不了水平不够,这边进行了九个小时的开发,开发了Java和python两个版本,本文的优势就在于系统全面,并且拿来可用,对于那些急于解决问题,完成作业的小伙伴,非常友好,因此,这篇文章对你帮助极大,希望你喜欢。 需求 题目如下如这样。 分析 题目一的要求翻译一下,就是要(1)写一个子类继承父类,(2)子类要有一个构造方法可以传入double[]类型的数据,(3)打印的结果要像图例那样,所以要重写showInfo方法(这是没重写实际运行发现的,初期没觉得要重写) 题目翻译:(1) 要开发一个get_inverse()在子类中(2)要增加一个判断判断在矩阵中全是0的时候要有判断输出。 题目翻译:(1) 要开发一个方法mul(m3),可以做矩阵的乘法 (2)方法之间可以互相调用mul().showInfo().
SpringCloud微服务实战--搭建企业级开发框架(三十):整合EasyExcel实现数据表格导入导出功能_全栈程序猿的技术博客_51CTO博客
批量上传数据导入、数据统计分析导出,已经基本是系统必不可缺的一项功能,这里从性能和易用性方面考虑,集成EasyExcel。EasyExcel是一个基于Java的简单、省内存的读写Excel的开源项目,在尽可能节约内存的情况下支持读写百M的Excel: Java解析、生成Excel比较有名的框架有Apache poi、jxl。但他们都存在一个严重的问题就是非常的耗内存,poi有一套SAX模式的API可以一定程度的解决一些内存溢出的问题,但POI还是有一些缺陷,比如07版Excel解压缩以及解压后存储都是在内存中完成的,内存消耗依然很大。easyexcel重写了poi对07版Excel的解析,一个3M的excel用POI sax解析依然需要100M左右内存,改用easyexcel可以降低到几M,并且再大的excel也不会出现内存溢出;03版依赖POI的sax模式,在上层做了模型转换的封装,让使用者更加简单方便。 一、引入依赖的库 1、在GitEgg-Platform项目中修改gitegg-platform-bom工程的pom.xml文件,增加EasyExcel的Maven依赖。...
java加密使用_西安Echo的博客-CSDN博客
概念 对称加解密算法 加密和解密使用相同的秘钥,常见算法有DES、TDES、AES、SM4、RC2/4 非对称加解密算法 加密和解密使用不同的秘钥,公钥加密私钥解密,私钥加密公钥解密。常见算法有RSA、SM2、ECC 信息摘要算法 类似于hash,不可逆。常见的信息摘要算法有:MD2/4/5、SHA1/SHA224/SHA256/SHA384、SM3算法、MAC算法等 【数字签名】主要解决了两个核心问题:发送的消息是完整的,未被篡改的;接收的消息一定就是对应发送者发送的,别人无法仿制。前者体现的是数据的完整性,后者体现的是数据的不可抵赖性 数字签名过程 数字签名的应用公式如下所示,其中M表示消息原文,S表示数字签名,P表示非对称算法的私钥运算,D表示信息摘要算法的运算。 P(D(M [with any length])) = S [with fixed length] 具体来说,发送方产生一个数据签名,需要经过以下几个步骤: 使用【信息摘要算法】,对任意长度的信息原文做摘要运算,得到一段固定长度的摘要数据;...
Mybatis 使用参数时$与#的区别
之前我们介绍了mybatis中参数的使用,本篇我们在此基础上介绍Mybatis中使用参数时$与#的区别。 如果您对mybatis中参数的使用不太了解,建议您先进行了解后再阅读本篇,可以参考: Mybatis参数(parameterType)https://blog.csdn.net/m1729339749/article/details/132548838 一、创建实体类 在cn.horse.demo下创建UserInfo、UserInfoQuery类 UserInfo类: package cn.horse.demo; public class UserInfo { private Integer id; private String name; private Integer age; public void setId(Integer id) { this.id = id; } public Integer getId() { return id; } public void setName(String name) { this.name = name; } public...
Show More
loading
Actions
Is this you?
As a journalist, you can create a free Muck Rack account to customize your profile, list your contact preferences, and upload a portfolio of your best work.Get in touch with import
Contact import, search articles and posts on X, monitor coverage, and track replies from one place.
Learn more about Muck Rack