摘要: Java NIO 核心概念 vs 医院系统映射 flowchart TB subgraph Java NIO Selector[Selector<br>分诊台] Channel[Channel<br>患者通道] Buffer[Buffer<br>病历本] SelectionKey[Selection 阅读全文
posted @ 2025-06-01 00:59 gongchengship 阅读(7) 评论(0) 推荐(0)
摘要: Java线程的中断机制底层原理,以及否涉及CPU指令周期检测 这里将深入研究 Java 线程中断机制的底层原理,特别关注以下问题: 当调用 Thread.interrupt() 方法时,JVM 是否会让目标线程在每个 CPU 指令周期隐式检查中断标志? 中断标志的设置是否必须通过线程自身调用 Thr 阅读全文
posted @ 2025-05-11 00:34 gongchengship 阅读(15) 评论(0) 推荐(0)
摘要: 一. 什么是架构和架构本质 在软件行业,对于什么是架构,都有很多的争论,每个人都有自己的理解。此君说的架构和彼君理解的架构未必是一回事。因此我们在讨论架构之前,我们先讨论架构的概念定义,概念是人认识这个世界的基础,并用来沟通的手段,如果对架构概念理解不一样,那沟通起来自然不顺畅。 Linux有架构, 阅读全文
posted @ 2024-10-20 00:28 gongchengship 阅读(55) 评论(0) 推荐(1)
摘要: 前后端分离的应用(React 前端 + Java 后端)在部署过程中,需要考虑性能、扩展性、安全性、以及维护方便性等多个方面。下面我将详细介绍前后端分离应用的最佳实践,从架构设计、构建和打包、部署策略、CI/CD 集成、安全性措施等几个角度来描述。 微服务架构图示例 壹.总体概述 一、架构设计 1. 阅读全文
posted @ 2024-10-20 00:19 gongchengship 阅读(371) 评论(0) 推荐(0)
摘要: 前后端分离应用指的是将应用的前端部分(用户界面与交互逻辑)和后端部分(业务逻辑、数据处理、服务器响应)拆分成独立的模块,各自通过 API 进行通信。这种架构设计的目的是提高开发效率、增强可扩展性和灵活性,使前端和后端能够独立开发、部署和维护。 一、传统的前后端耦合应用 vs 前后端分离应用 传统的前 阅读全文
posted @ 2024-10-20 00:10 gongchengship 阅读(810) 评论(5) 推荐(2)
摘要: 将网站从 HTTP 转换为 HTTPS 能够加密数据传输,还能提高搜索引擎排名 1. 获取 SSL/TLS 证书 首先,你需要获得一个 SSL/TLS 证书。你可以从以下来源之一获取证书: 免费证书: Let's Encrypt:一个免费的、自动化的证书颁发机构(CA),广泛使用且受信任。 付费证书 阅读全文
posted @ 2024-07-04 18:56 gongchengship 阅读(926) 评论(0) 推荐(0)
摘要: 策略模式(Strategy Pattern)和模板方法模式(Template Method Pattern)是两种常见的行为型设计模式,它们都旨在提高代码的可复用性和可维护性,但在实现方式和适用场景上存在显著差异。 一、定义与核心思想 策略模式(Strategy Pattern) 策略模式定义了一系 阅读全文
posted @ 2025-06-01 01:07 gongchengship 阅读(26) 评论(0) 推荐(0)
摘要: 1.这是一个使用 Java 实现的生产者-消费者模型的示例,展示线程间通信。示例1使用BlockingQueue 来简化实现,BlockingQueue底层使用 wait() 和 notify() 机制来协调生产者和消费者线程。 示例1: import java.util.concurrent.Bl 阅读全文
posted @ 2025-05-25 21:06 gongchengship 阅读(20) 评论(0) 推荐(0)
摘要: 为了解决微服务架构中的复杂性和分布式系统的挑战。我来用一个具体的微服务场景,结合Spring Cloud Resilience4j的核心功能,向你解释它的用途。 场景:电商订单服务 假设你在开发一个电商平台的微服务系统,其中有一个OrderService(订单服务),它需要调用InventorySe 阅读全文
posted @ 2025-05-25 17:23 gongchengship 阅读(25) 评论(0) 推荐(0)
摘要: AppDynamics 提供 RESTful API,可以用于管理和调整 Alert Suppression(告警抑制) 相关的功能。你可以通过 API 创建、更新、删除或查询 告警抑制规则,从而在特定时间段内抑制告警,避免不必要的通知(例如维护窗口期间)。 📌 AppDynamics Alert 阅读全文
posted @ 2025-03-24 23:40 gongchengship 阅读(5) 评论(0) 推荐(0)
摘要: AppDynamics。它是由 Cisco 收购的一款 应用性能管理(APM) 和 可观测性(Observability) 解决方案。主要用于 监控、分析和优化 企业级应用的性能,帮助开发和运维团队发现和解决性能瓶颈,提高系统的稳定性和用户体验。 AppDynamics 的核心功能 应用性能监控(A 阅读全文
posted @ 2025-03-24 23:38 gongchengship 阅读(29) 评论(0) 推荐(0)
摘要: 在 Spring Framework 中,@Singleton 和 @Prototype 是两种常见的作用域,分别用于创建单例和多例对象。当一个单例 Bean 需要依赖一个多例(@Prototype)Bean 时,尤其是通过该 Bean 的接口间接依赖时,直接注入 @Prototype Bean 的 阅读全文
posted @ 2024-11-22 15:11 gongchengship 阅读(0) 评论(0) 推荐(0)
摘要: 使用 RestTemplate 时,记录请求参数和返回值到日志是调试和维护的重要环节。为了优雅而全面地实现这一功能,可以借助以下方式: 1. 直接记录日志 在发送请求前后,通过日志工具(如 SLF4J 或 Log4j)手动记录请求参数和返回值。 示例代码 import org.slf4j.Logge 阅读全文
posted @ 2024-11-19 01:17 gongchengship 阅读(4) 评论(0) 推荐(0)
摘要: Spring Boot Test 是 Spring Boot 提供的一个强大测试框架,用于帮助开发者简化和加速应用程序的单元测试和集成测试。下面是对 Spring Boot Test 各种测试类型和主要注解的详细教程。 1. Spring Boot Test 的基础概念 Spring Boot 提供 阅读全文
posted @ 2024-11-12 00:28 gongchengship 阅读(5090) 评论(0) 推荐(1)
摘要: 在子类和父类中出现同名属性(即字段)时,最推荐的做法是让每个类都保持独立的 private 属性,并且尽量避免直接通过字段访问父类属性。Java 是面向对象的语言,其设计理念鼓励通过方法(如 getter/setter)访问和修改字段,而不是直接通过字段访问。这种做法可以更好地遵循封装原则,同时提高 阅读全文
posted @ 2024-11-07 22:35 gongchengship 阅读(79) 评论(0) 推荐(0)
摘要: 在 Java 中使用 JPA(Java Persistence API)时,可以通过 @Embeddable 和 @EmbeddedId 或 @IdClass 两种方式来配置联合主键。以下是详细的实现步骤和两种方式的示例代码。 1. 使用 @Embeddable 和 @EmbeddedId 实现联合 阅读全文
posted @ 2024-11-05 01:25 gongchengship 阅读(7) 评论(0) 推荐(0)
摘要: 在 Spring 中,@Scheduled 注解用于定义和管理定时任务。这个注解可以标记在方法上,使其能够按指定的时间间隔或固定的计划触发执行。以下是 @Scheduled 注解的使用方法和配置方式: 1. 启用定时任务支持 在 Spring Boot 项目中,首先需要启用定时任务支持,可以在主应用 阅读全文
posted @ 2024-11-05 00:05 gongchengship 阅读(5) 评论(0) 推荐(0)
摘要: 使用 Redis 实现分布式锁来控制定时任务的唯一执行,需要借助 Redis 的原子性和键过期机制,手动实现分布式锁。Redis 本身提供了 SETNX(SET if Not eXists)命令来实现分布式锁的核心原理,同时结合过期时间和自动释放机制,确保锁能够按预期释放,防止死锁。 以下是具体实现 阅读全文
posted @ 2024-11-04 23:53 gongchengship 阅读(7) 评论(0) 推荐(0)
摘要: 在 JPA(Java Persistence API)中,可以通过 @GeneratedValue 注解来指定主键生成策略。JPA 提供了几种常用的主键生成策略,主要包括 AUTO、IDENTITY、SEQUENCE 和 TABLE。这些策略允许 JPA 在持久化实体对象时自动生成主键值,而无需手动 阅读全文
posted @ 2024-11-04 21:53 gongchengship 阅读(4) 评论(0) 推荐(0)
摘要: 在数据库中,Schema(模式) 是一种用于逻辑组织数据库对象的结构。它主要起到以下作用: 组织数据库对象:Schema 用于分组和管理数据库对象,如表、视图、存储过程等。它帮助开发者在一个数据库中更清晰地组织数据和代码,尤其是对于大型或复杂项目。 访问控制:Schema 也是数据库权限管理的一部分 阅读全文
posted @ 2024-11-04 16:34 gongchengship 阅读(53) 评论(0) 推荐(0)
摘要: 在 Maven 中,scope 定义了一个依赖的使用范围,它决定了依赖在编译、测试、运行、打包等阶段的可见性和作用方式。了解这些作用域有助于控制依赖的加载时机和范围,从而优化构建和运行过程。Maven 的 scope 主要有以下几种: 1. compile (默认) 描述:compile 是 Mav 阅读全文
posted @ 2024-11-01 12:11 gongchengship 阅读(243) 评论(0) 推荐(0)
摘要: AWS 的 Lambda 服务相当于阿里云的 函数计算(Function Compute)。两者都是无服务器(Serverless)计算平台,允许开发者无需管理底层基础设施,直接上传代码来处理事件驱动的任务。 二者的相似点 事件驱动:两者都可以响应不同的事件触发(例如文件上传、数据库更新、HTTP 阅读全文
posted @ 2024-11-01 12:03 gongchengship 阅读(168) 评论(0) 推荐(0)
摘要: Quality Gate 是 SonarQube 中的一个功能,旨在根据特定的代码质量指标来评估代码的质量和合规性。通过 Quality Gate,项目团队可以确保代码符合一定的质量标准,避免代码中的潜在问题进入生产环境。它通常用于持续集成(CI)或持续交付(CD)流程中,作为代码合并或部署的一个质 阅读全文
posted @ 2024-10-31 02:00 gongchengship 阅读(290) 评论(0) 推荐(0)
摘要: 在 Java 中,lambda 表达式要求捕获的局部变量是 final 或者 effectively final(“实际上是 final”)的,即在声明后没有被重新赋值。这一限制是由 lambda 表达式的设计原理和作用域管理机制决定的,目的是确保代码行为的一致性和线程安全。下面详细解释这个原因。 阅读全文
posted @ 2024-10-28 23:58 gongchengship 阅读(270) 评论(0) 推荐(0)
摘要: Spring Cloud Gateway 是一个基于 Spring Framework 的网关解决方案,用于管理和路由微服务请求。它提供了动态路由、负载均衡、路径重写、过滤请求、限流等功能。以下是 Spring Cloud Gateway 的基本配置方法,包括路由、过滤器和限流等。 1. 基本依赖配 阅读全文
posted @ 2024-10-28 22:53 gongchengship 阅读(1140) 评论(0) 推荐(0)
摘要: CloseableHttpClient 的 execute 方法通过指定的 HttpClientResponseHandler 对响应进行处理。HttpClientResponseHandler 是一个回调接口,允许我们在响应返回时对其进行自定义处理。这个方法特别有用,因为可以在 execute 调 阅读全文
posted @ 2024-10-28 00:32 gongchengship 阅读(206) 评论(0) 推荐(0)
摘要: 是的,在默认情况下,一旦 ServletRequest 的输入流(InputStream 或 Reader)被读取,流就被标记为已消费,数据也无法再次读取。这是因为 ServletRequest 的输入流基于 HTTP 请求的字节流实现,读取数据后,流会关闭或标记为已消费状态,从而阻止重复读取。 如 阅读全文
posted @ 2024-10-28 00:04 gongchengship 阅读(329) 评论(0) 推荐(0)
摘要: Servlet 和 Filter 是 Java Web 开发中常用的两种组件,但它们的功能和使用场景不同。以下是它们的主要区别: 1. 作用和用途 Servlet:Servlet 是处理客户端请求和生成响应的主要组件。它可以直接处理 HTTP 请求,生成动态内容,并将响应返回给客户端。Servlet 阅读全文
posted @ 2024-10-28 00:02 gongchengship 阅读(167) 评论(0) 推荐(0)
摘要: Java Servlet 规范是由 Java 社区流程(Java Community Process, JCP)开发的一组标准接口和协议,定义了 Java Web 应用程序中的 Servlet 和相关组件如何与 Web 服务器交互。Servlet 规范旨在为 Java Web 应用开发者提供一个统一 阅读全文
posted @ 2024-10-28 00:01 gongchengship 阅读(108) 评论(0) 推荐(0)