- 背景框架之前完成了多数据源的动态切换及事务的处理,想更近一步提供一个简单的跨库事务处理功能,经过网上的搜索调研,大致有XA事务/SEGA事务/TCC事务等方案,因为业务主要涉及政府及企业且并发量不大,所以采用XA事务,虽然性能有所损失,但是可以保证数据的强一致性 方案设计针对注册的数据源拷贝一份用于XA事务,使得本地事务和XA全局事务相互独立可选择的使用 Maven配置引入atomikos... 背景框架之前完成了多数据源的动态切换及事务的处理,想更近一步提供一个简单的跨库事务处理功能,经过网上的搜索调研,大致有XA事务/SEGA事务/TCC事务等方案,因为业务主要涉及政府及企业且并发量不大,所以采用XA事务,虽然性能有所损失,但是可以保证数据的强一致性 方案设计针对注册的数据源拷贝一份用于XA事务,使得本地事务和XA全局事务相互独立可选择的使用 Maven配置引入atomikos...
- 前言在使用框架日常开发中需要在controller中进行一些异步操作减少请求时间,但是发现在使用@Anysc注解后会出现Request对象无法获取的情况,本文就此情况给出完整的解决方案 原因分析@Anysc注解会开启一个新的线程,主线程的Request和子线程是不共享的,所以获取为null在使用springboot的自定带的线程共享后,代码如下,Request不为null,但是偶发的其中b... 前言在使用框架日常开发中需要在controller中进行一些异步操作减少请求时间,但是发现在使用@Anysc注解后会出现Request对象无法获取的情况,本文就此情况给出完整的解决方案 原因分析@Anysc注解会开启一个新的线程,主线程的Request和子线程是不共享的,所以获取为null在使用springboot的自定带的线程共享后,代码如下,Request不为null,但是偶发的其中b...
- 背景最近在对公司开发框架进行优化,框架内涉及到多处入库的日志记录,例如登录日志/操作日志/访问日志/业务执行日志,集成在业务代码中耦合度较高且占用业务操作执行时间,所以准备集成相关消息队列进行代码解耦 方案规划现有的成熟消息队列组件非常多,例如RabbitMQ,ActiveMQ,Kafka等,考虑到业务并发量不高且框架已经应用于多个项目平稳运行,准备提供基于Redis的消息队列和集成Act... 背景最近在对公司开发框架进行优化,框架内涉及到多处入库的日志记录,例如登录日志/操作日志/访问日志/业务执行日志,集成在业务代码中耦合度较高且占用业务操作执行时间,所以准备集成相关消息队列进行代码解耦 方案规划现有的成熟消息队列组件非常多,例如RabbitMQ,ActiveMQ,Kafka等,考虑到业务并发量不高且框架已经应用于多个项目平稳运行,准备提供基于Redis的消息队列和集成Act...
- 背景最近在做一个部门内部简单的知识库系统,便于新人入职了解与一些常见问题的解答,知识库的形式是以文档为主,为了快速实现文档功能,决定采用markdown形式录入,生成本地文件后以html方式展现,层次清晰便于查看 表结构设计文档信息表DROP TABLE IF EXISTS `knowledge_documentinfo`;CREATE TABLE `knowledge_documenti... 背景最近在做一个部门内部简单的知识库系统,便于新人入职了解与一些常见问题的解答,知识库的形式是以文档为主,为了快速实现文档功能,决定采用markdown形式录入,生成本地文件后以html方式展现,层次清晰便于查看 表结构设计文档信息表DROP TABLE IF EXISTS `knowledge_documentinfo`;CREATE TABLE `knowledge_documenti...
- 背景近期项目上线,甲方要求通过安全检测才能进行验收,故针对扫描结果对系统进行了一系列的安全加固,本文对一些常见的安全问题及防护策略进行介绍,提供对应的解决方案 跨站脚本攻击XSS常发生于论坛评论等系统,现在富文本编辑器已对XSS进行了防护,但是我们任需要在后端接口进行数据过滤,常见防护策略是通过过滤器将恶意提交的脚本进行过滤与替换public class XSSFilter impleme... 背景近期项目上线,甲方要求通过安全检测才能进行验收,故针对扫描结果对系统进行了一系列的安全加固,本文对一些常见的安全问题及防护策略进行介绍,提供对应的解决方案 跨站脚本攻击XSS常发生于论坛评论等系统,现在富文本编辑器已对XSS进行了防护,但是我们任需要在后端接口进行数据过滤,常见防护策略是通过过滤器将恶意提交的脚本进行过滤与替换public class XSSFilter impleme...
- Synchronized 是一个悲观锁在并发编程中,线程之间的竞争是不可避免的。为了保证数据的一致性和线程安全,需要采用锁机制来控制对共享资源的访问。Synchronized 是 Java 中最常用的锁机制之一,它是一种悲观锁。 悲观锁与乐观锁的概念悲观锁和乐观锁是两种不同的锁策略。悲观锁是一种较为保守的策略,它假设并发情况下会发生冲突,因此在访问共享资源之前会先加锁,确保每次只有一个线程... Synchronized 是一个悲观锁在并发编程中,线程之间的竞争是不可避免的。为了保证数据的一致性和线程安全,需要采用锁机制来控制对共享资源的访问。Synchronized 是 Java 中最常用的锁机制之一,它是一种悲观锁。 悲观锁与乐观锁的概念悲观锁和乐观锁是两种不同的锁策略。悲观锁是一种较为保守的策略,它假设并发情况下会发生冲突,因此在访问共享资源之前会先加锁,确保每次只有一个线程...
- 什么是可重入性在计算机科学领域中,可重入性(Reentrancy)是指一个子程序(函数、方法)可以被多个并发执行的线程同时调用,而不会出现不正确的结果。换句话说,可重入性是指一个子程序可以被多次调用,而每次调用都能正常执行,不会受到之前调用的影响。可重入性是并发编程中的重要概念,因为在多线程环境下,多个线程可能同时访问同一个资源,如果资源不具备可重入性,那么在并发执行的情况下可能会导致数据... 什么是可重入性在计算机科学领域中,可重入性(Reentrancy)是指一个子程序(函数、方法)可以被多个并发执行的线程同时调用,而不会出现不正确的结果。换句话说,可重入性是指一个子程序可以被多次调用,而每次调用都能正常执行,不会受到之前调用的影响。可重入性是并发编程中的重要概念,因为在多线程环境下,多个线程可能同时访问同一个资源,如果资源不具备可重入性,那么在并发执行的情况下可能会导致数据...
- 手搭手入门Spring boot+Mybatis+达梦数据库 手搭手入门Spring boot+Mybatis+达梦数据库
- synchronized与lock的区别 引言在多线程编程中,为了保证多个线程对共享资源的访问的正确性和一致性,需要使用线程加锁的机制。线程加锁可以避免多个线程同时访问共享资源而导致的数据竞争、不确定性和错误结果等问题。本文将介绍线程加锁的几种常见方式,并重点对比synchronized和lock两种常用的线程加锁机制的区别。 1. 线程加锁的方式 1.1 synchronized关键字s... synchronized与lock的区别 引言在多线程编程中,为了保证多个线程对共享资源的访问的正确性和一致性,需要使用线程加锁的机制。线程加锁可以避免多个线程同时访问共享资源而导致的数据竞争、不确定性和错误结果等问题。本文将介绍线程加锁的几种常见方式,并重点对比synchronized和lock两种常用的线程加锁机制的区别。 1. 线程加锁的方式 1.1 synchronized关键字s...
- 一、引言在互联网行业中,多线程编程是非常常见的场景之一。Java作为广泛应用的编程语言,提供了许多方便的多线程操作工具,其中之一就是线程池(ThreadPool)。线程池可以管理和复用线程,提高线程的利用率和系统的整体性能。本文将详细介绍Java线程池的概念,并解释线程池构造函数的几个参数的含义,以及keepAliveTime的解释。 二、什么是线程池线程池是一种多线程处理的模式,它将多个... 一、引言在互联网行业中,多线程编程是非常常见的场景之一。Java作为广泛应用的编程语言,提供了许多方便的多线程操作工具,其中之一就是线程池(ThreadPool)。线程池可以管理和复用线程,提高线程的利用率和系统的整体性能。本文将详细介绍Java线程池的概念,并解释线程池构造函数的几个参数的含义,以及keepAliveTime的解释。 二、什么是线程池线程池是一种多线程处理的模式,它将多个...
- NIO的原理及其组件NIO(New Input/Output)是Java中用于高效处理IO操作的API。相比于传统的阻塞式IO,NIO采用了非阻塞式IO模型,通过事件驱动的方式提高了IO操作的效率和可扩展性。NIO的原理主要包括三个组件:通道(Channel)、缓冲区(Buffer)和选择器(Selector)。 一、通道(Channel)通道是NIO中数据的源和目标的抽象。可以将通道理解... NIO的原理及其组件NIO(New Input/Output)是Java中用于高效处理IO操作的API。相比于传统的阻塞式IO,NIO采用了非阻塞式IO模型,通过事件驱动的方式提高了IO操作的效率和可扩展性。NIO的原理主要包括三个组件:通道(Channel)、缓冲区(Buffer)和选择器(Selector)。 一、通道(Channel)通道是NIO中数据的源和目标的抽象。可以将通道理解...
- 反射机制在Java中的应用场景 1. 引言反射机制是Java语言中的一项重要特性,它允许程序在运行时动态地获取类的信息并操作类的成员。通过反射机制,我们可以在编译时无法确定具体类型的情况下,动态地创建对象、调用方法、访问字段等。反射机制在很多场景下都有广泛的应用,本文将以Java的反射机制为主题,探讨它在互联网领域中的应用场景。 2. 反射机制的基本概念在介绍反射机制的应用场景之前,我们先... 反射机制在Java中的应用场景 1. 引言反射机制是Java语言中的一项重要特性,它允许程序在运行时动态地获取类的信息并操作类的成员。通过反射机制,我们可以在编译时无法确定具体类型的情况下,动态地创建对象、调用方法、访问字段等。反射机制在很多场景下都有广泛的应用,本文将以Java的反射机制为主题,探讨它在互联网领域中的应用场景。 2. 反射机制的基本概念在介绍反射机制的应用场景之前,我们先...
- 数据库隔离级别和幻读、不可重复读的区别 引言在数据库系统中,隔离级别是指事务在并发执行时对数据的可见性和一致性的控制程度。幻读和不可重复读则是两种常见的并发问题,它们与隔离级别密切相关。本文将介绍数据库隔离级别,以及幻读和不可重复读的定义、区别,并且给出相关代码示例。 数据库隔离级别数据库管理系统(DBMS)为了保证事务的正确性和一致性,提供了多个隔离级别供用户选择。常见的隔离级别包括:读... 数据库隔离级别和幻读、不可重复读的区别 引言在数据库系统中,隔离级别是指事务在并发执行时对数据的可见性和一致性的控制程度。幻读和不可重复读则是两种常见的并发问题,它们与隔离级别密切相关。本文将介绍数据库隔离级别,以及幻读和不可重复读的定义、区别,并且给出相关代码示例。 数据库隔离级别数据库管理系统(DBMS)为了保证事务的正确性和一致性,提供了多个隔离级别供用户选择。常见的隔离级别包括:读...
- 我们来测试 Spring Boot 在信息系统中使用 Apache Kafka 的应用。为了保证测试集成期间的相关功能,请使用图书馆测试容器,不允许使用测试自动化和隔离环境。Apache Kafka是一个流行的流媒体发行平台,以真实的节奏传播信息。使用 Kafka 的应用程序将全面验证系统组件的功能和功能,并在集成测试期间进行基本验证。[Testcontainers ( https://ja... 我们来测试 Spring Boot 在信息系统中使用 Apache Kafka 的应用。为了保证测试集成期间的相关功能,请使用图书馆测试容器,不允许使用测试自动化和隔离环境。Apache Kafka是一个流行的流媒体发行平台,以真实的节奏传播信息。使用 Kafka 的应用程序将全面验证系统组件的功能和功能,并在集成测试期间进行基本验证。[Testcontainers ( https://ja...
- Spring Boot是一个基于 Java 的开源框架,可简化独立、生产级应用程序的开发。它是更大的 Spring 生态系统的一部分,该生态系统为构建企业级 Java 应用程序提供了全面的框架。* spring boot项目中的文件夹如下*配置控制器枚举楷模POJO / DTO存储库安全服务服务实施者实用程序config:“config”文件夹保存用于自定义应用程序行为的配置文件,例如应用程... Spring Boot是一个基于 Java 的开源框架,可简化独立、生产级应用程序的开发。它是更大的 Spring 生态系统的一部分,该生态系统为构建企业级 Java 应用程序提供了全面的框架。* spring boot项目中的文件夹如下*配置控制器枚举楷模POJO / DTO存储库安全服务服务实施者实用程序config:“config”文件夹保存用于自定义应用程序行为的配置文件,例如应用程...
上滑加载中
推荐直播
-
基于HarmonyOS NEXT应用开发之旅
2025/07/17 周四 19:00-20:00
吴玉佩、刘俊威-华为开发者布道师-高校学生
两位学生华为开发者布道师,连续两届HarmonyOS极客马拉松获奖选手联袂呈现HarmonyOS NEXT开发全景!从基础筑基,到工具提效。为您铺就一条从入门到精通的鸿蒙应用开发之路。无论您是新手开发者,还是经验老手,都能在此收获满满干货,开启您的HarmonyOS NEXT高效、智能开发新篇章!
回顾中
热门标签