10 2024 档案

摘要:Quality Gate 是 SonarQube 中的一个功能,旨在根据特定的代码质量指标来评估代码的质量和合规性。通过 Quality Gate,项目团队可以确保代码符合一定的质量标准,避免代码中的潜在问题进入生产环境。它通常用于持续集成(CI)或持续交付(CD)流程中,作为代码合并或部署的一个质 阅读全文
posted @ 2024-10-31 02:00 gongchengship 阅读(144) 评论(0) 推荐(0) 编辑
摘要:在 Java 中,lambda 表达式要求捕获的局部变量是 final 或者 effectively final(“实际上是 final”)的,即在声明后没有被重新赋值。这一限制是由 lambda 表达式的设计原理和作用域管理机制决定的,目的是确保代码行为的一致性和线程安全。下面详细解释这个原因。 阅读全文
posted @ 2024-10-28 23:58 gongchengship 阅读(129) 评论(0) 推荐(0) 编辑
摘要:Spring Cloud Gateway 是一个基于 Spring Framework 的网关解决方案,用于管理和路由微服务请求。它提供了动态路由、负载均衡、路径重写、过滤请求、限流等功能。以下是 Spring Cloud Gateway 的基本配置方法,包括路由、过滤器和限流等。 1. 基本依赖配 阅读全文
posted @ 2024-10-28 22:52 gongchengship 阅读(605) 评论(0) 推荐(0) 编辑
摘要:CloseableHttpClient 的 execute 方法通过指定的 HttpClientResponseHandler 对响应进行处理。HttpClientResponseHandler 是一个回调接口,允许我们在响应返回时对其进行自定义处理。这个方法特别有用,因为可以在 execute 调 阅读全文
posted @ 2024-10-28 00:32 gongchengship 阅读(116) 评论(0) 推荐(0) 编辑
摘要:是的,在默认情况下,一旦 ServletRequest 的输入流(InputStream 或 Reader)被读取,流就被标记为已消费,数据也无法再次读取。这是因为 ServletRequest 的输入流基于 HTTP 请求的字节流实现,读取数据后,流会关闭或标记为已消费状态,从而阻止重复读取。 如 阅读全文
posted @ 2024-10-28 00:04 gongchengship 阅读(207) 评论(0) 推荐(0) 编辑
摘要:Servlet 和 Filter 是 Java Web 开发中常用的两种组件,但它们的功能和使用场景不同。以下是它们的主要区别: 1. 作用和用途 Servlet:Servlet 是处理客户端请求和生成响应的主要组件。它可以直接处理 HTTP 请求,生成动态内容,并将响应返回给客户端。Servlet 阅读全文
posted @ 2024-10-28 00:02 gongchengship 阅读(111) 评论(0) 推荐(0) 编辑
摘要:Java Servlet 规范是由 Java 社区流程(Java Community Process, JCP)开发的一组标准接口和协议,定义了 Java Web 应用程序中的 Servlet 和相关组件如何与 Web 服务器交互。Servlet 规范旨在为 Java Web 应用开发者提供一个统一 阅读全文
posted @ 2024-10-28 00:01 gongchengship 阅读(52) 评论(0) 推荐(0) 编辑
摘要:在 Java 中,如果你希望仅从 MongoDB 的主节点(primary node)进行读写操作,而避免从从节点(secondary nodes)读写,可以通过以下方式配置 MongoDB 客户端: 1. 使用 ReadPreference.primary() 配置 MongoDB 提供了 Rea 阅读全文
posted @ 2024-10-21 09:52 gongchengship 阅读(16) 评论(0) 推荐(0) 编辑
摘要:这里可以看阮一峰老师关于 OAuth 2.0 的介绍: 理解OAuth 2.0:https://www.ruanyifeng.com/blog/2014/05/oauth_2_0.html OAuth 2.0 的一个简单解释: https://www.ruanyifeng.com/blog/2019 阅读全文
posted @ 2024-10-21 09:09 gongchengship 阅读(52) 评论(0) 推荐(0) 编辑
摘要:可以在这里反解 JWT token https://jwt.io/ 这里可以看阮一峰老师关于JWT 的介绍 https://www.ruanyifeng.com/blog/2018/07/json_web_token-tutorial.html JWT(JSON Web Token)是一种用于在各方 阅读全文
posted @ 2024-10-21 00:27 gongchengship 阅读(437) 评论(0) 推荐(0) 编辑
摘要:一. 什么是架构和架构本质 转载 https://hangzhouhot.com/whatisarch 在软件行业,对于什么是架构,都有很多的争论,每个人都有自己的理解。此君说的架构和彼君理解的架构未必是一回事。因此我们在讨论架构之前,我们先讨论架构的概念定义,概念是人认识这个世界的基础,并用来沟通 阅读全文
posted @ 2024-10-20 00:28 gongchengship 阅读(42) 评论(0) 推荐(1) 编辑
摘要:前后端分离的应用(React 前端 + Java 后端)在部署过程中,需要考虑性能、扩展性、安全性、以及维护方便性等多个方面。下面我将详细介绍前后端分离应用的最佳实践,从架构设计、构建和打包、部署策略、CI/CD 集成、安全性措施等几个角度来描述。 微服务架构图示例 壹.总体概述 一、架构设计 1. 阅读全文
posted @ 2024-10-20 00:18 gongchengship 阅读(201) 评论(0) 推荐(0) 编辑
摘要:前后端分离应用指的是将应用的前端部分(用户界面与交互逻辑)和后端部分(业务逻辑、数据处理、服务器响应)拆分成独立的模块,各自通过 API 进行通信。这种架构设计的目的是提高开发效率、增强可扩展性和灵活性,使前端和后端能够独立开发、部署和维护。 一、传统的前后端耦合应用 vs 前后端分离应用 传统的前 阅读全文
posted @ 2024-10-20 00:10 gongchengship 阅读(496) 评论(3) 推荐(2) 编辑
摘要:1.删除 .idea 目录(一般位于项目的根目录下,会随着IDEA 打开项目而重新生成) 2.删除 .iml 文件 3.project structure 移除所有模块 4.reload maven project 5.从磁盘全部重新加载 6.清除缓存 7.项目主目录(右键)-重新加载maven 项 阅读全文
posted @ 2024-10-18 00:27 gongchengship 阅读(52) 评论(0) 推荐(0) 编辑
摘要:方式一: 为了定制 Spring Boot 的 Actuator 来实现你所描述的功能,即在调用自己的 /actuator/health 时,服务端能够自动调用 4 个下游 API 的 /actuator/health,并将其检查结果与自己的健康状态一起返回,可以按照以下步骤进行操作: 实现思路: 阅读全文
posted @ 2024-10-17 01:42 gongchengship 阅读(70) 评论(0) 推荐(0) 编辑
摘要:“异常是为了‘’中断”,即异常发生后: (如果什么也不做,亦即没有catch异常)那么异常会沿着方法调用栈往回传播,会让方法调用栈中的每个方法中与该异常相关的代码之后的代码均无法被执行到,直至方法调用栈的栈底。 (如果catch了异常),那么程序会执行 catch 块里面的代码,执行完之后会执行 f 阅读全文
posted @ 2024-10-13 22:34 gongchengship 阅读(68) 评论(0) 推荐(0) 编辑
摘要:在 Java 语言中,理解方法调用栈、栈帧、局部变量表、操作数栈等概念非常重要,它们与方法的执行和内存管理密切相关。下面是对这些概念的详细解释及它们之间的关系: 图片来源于https://blog.csdn.net/qq_35621494/article/details/107351237 原作者的 阅读全文
posted @ 2024-10-13 21:37 gongchengship 阅读(30) 评论(0) 推荐(0) 编辑
摘要:在 C 语言程序中,内存布局通常被分为几个主要的区域,每个区域都有不同的用途。以下是关于代码段、数据段、堆栈、全局变量、局部变量和函数的详细描述,以及它们之间的关系。 1. 代码段(Text Segment) 代码段(也称为 text segment)是程序的只读部分,存储的是程序的指令(即代码)。 阅读全文
posted @ 2024-10-13 20:45 gongchengship 阅读(231) 评论(0) 推荐(0) 编辑
摘要:在 DocumentDB 或者 MongoDB 使用中,收到 "not master" 错误通常表明当前连接的节点不是主节点(primary),因此它不能处理写操作。这种错误一般出现在复制集的环境下,因为只有复制集的主节点能够处理写操作,而次节点(secondary)只能处理读操作。 可能的原因与解 阅读全文
posted @ 2024-10-11 01:31 gongchengship 阅读(84) 评论(0) 推荐(0) 编辑
摘要:为了将日志输出从 IDEA 的 Console 重定向到文件,你可以使用 Logback 作为日志框架,并通过配置文件来实现这一功能。下面是一个示例 logback.xml 配置文件,它会将日志同时输出到 Console 和 文件 中。 logback.xml 配置文件示例 <?xml versio 阅读全文
posted @ 2024-10-11 01:27 gongchengship 阅读(7) 评论(0) 推荐(0) 编辑
摘要:为了将日志输出从 IDEA 的 Console 重定向到文件,你可以使用 Logback 作为日志框架,并通过配置文件来实现这一功能。下面是一个示例 logback.xml 配置文件,它会将日志同时输出到 Console 和 文件 中。 logback.xml 配置文件示例 <?xml versio 阅读全文
posted @ 2024-10-10 02:24 gongchengship 阅读(438) 评论(0) 推荐(0) 编辑
摘要:在 IntelliJ IDEA 中,可以将程序的输出重定向到一个日志文件,而不是直接输出到 Run 窗口。这个可以通过配置 log4j 或者 java.util.logging 等日志框架来实现,也可以使用标准的输出重定向方法将 System.out 和 System.err 输出到文件中。 下面是 阅读全文
posted @ 2024-10-10 02:22 gongchengship 阅读(480) 评论(0) 推荐(0) 编辑
摘要:在 Spring 中,使用 ThreadPoolTaskExecutor 时,如果线程池中的 任务队列(Queue) 满了,默认情况下并不会直接抛出异常,而是会根据 RejectedExecutionHandler 的策略来决定如何处理被拒绝的任务。ThreadPoolTaskExecutor 继承 阅读全文
posted @ 2024-10-10 02:03 gongchengship 阅读(238) 评论(0) 推荐(0) 编辑
摘要:是的,Java Profilers 可以用来监控线程池以及整个应用程序的性能和资源使用情况,包括线程的创建、执行、阻塞、等待和终止等细节。通过 Java Profilers,您可以深入分析线程池的运行状态,检查活跃线程、阻塞线程和任务队列的情况。 常用的 Java Profilers 下面是几种常见 阅读全文
posted @ 2024-10-10 01:58 gongchengship 阅读(90) 评论(0) 推荐(0) 编辑
摘要:在使用 Apache HttpClient 时,如果调用 HttpRequest.execute() 抛出了异常,通常情况下,异常不会直接包含完整的 response entity。特别是当服务器返回错误响应(如 4xx 或 5xx 状态码)时,execute() 方法可能抛出各种类型的 IOExc 阅读全文
posted @ 2024-10-08 14:28 gongchengship 阅读(88) 评论(0) 推荐(0) 编辑
摘要:使用连接池(connection pool)对 Apache HttpClient 的确能够提升性能,但对于你遇到的问题——在 catch 或 finally 块中读取完整的 response entity,连接池本身不会直接解决这个问题。连接池的主要作用是提升网络连接的复用效率,减少频繁建立和关闭 阅读全文
posted @ 2024-10-08 14:27 gongchengship 阅读(102) 评论(0) 推荐(0) 编辑
摘要:如果程序进入 catch 块 时还需要获取 response entity,但此时 try-with-resources 会自动关闭资源,导致无法再从 response 中获取数据,这种情况下,你可以避免在 try-with-resources 中立即关闭 CloseableHttpResponse 阅读全文
posted @ 2024-10-08 14:27 gongchengship 阅读(65) 评论(0) 推荐(0) 编辑
摘要:在使用 Apache HttpClient 时,如果你使用了 try-with-resources 语法并希望在 catch 或 finally 块中从 response 对象中读取完整的 response entity,你可能会遇到资源过早关闭的问题。这是因为 try-with-resources 阅读全文
posted @ 2024-10-08 14:26 gongchengship 阅读(18) 评论(0) 推荐(0) 编辑
摘要:在使用 RestTemplate 的情况下,调用如 postForObject() 方法时,如果抛出了异常,比如 HTTP 4xx 或 HTTP 5xx 状态码导致的异常,默认情况下,异常中不会直接包含完整的 HTTP 响应体(response body)。然而,RestTemplate 抛出的异常 阅读全文
posted @ 2024-10-08 14:25 gongchengship 阅读(140) 评论(0) 推荐(0) 编辑
摘要:在 Java 中,使用 try-with-resources 的情况下,资源会在 try 块执行完毕后自动关闭。具体来说,无论是否发生异常,资源总是在控制流进入 catch 或 finally 块之前关闭。 关键点: try-with-resources 是在 try 语句中声明和管理实现了 Aut 阅读全文
posted @ 2024-10-08 14:24 gongchengship 阅读(251) 评论(0) 推荐(0) 编辑
摘要:RestTemplate 不需要手动关闭资源。这是因为 RestTemplate 本身并不直接管理低层次的资源(例如 HTTP 连接池、套接字等),而是依赖于其底层的 HTTP 客户端库来处理这些资源的管理。 在 Spring 中,RestTemplate 默认使用 HttpURLConnectio 阅读全文
posted @ 2024-10-08 14:24 gongchengship 阅读(187) 评论(0) 推荐(0) 编辑
摘要:在 Spring 5 中,RestTemplate 是一个用于同步地执行 HTTP 请求并消费 RESTful Web 服务的客户端工具。尽管 RestTemplate 已被建议逐步被替代为 WebClient(Spring WebFlux 的一部分)以支持响应式编程模型,但它仍然是处理同步请求的常 阅读全文
posted @ 2024-10-08 14:23 gongchengship 阅读(103) 评论(0) 推荐(0) 编辑
摘要:Zulu JDK(Azul Zulu OpenJDK 发行版)自带了一系列工具来管理和监控 Java 应用程序,但 Zulu JDK 不包含 Oracle JDK 中的图形化监控工具 Java VisualVM(即 jvisualvm)或 JConsole。这些工具主要是 Oracle JDK 特有 阅读全文
posted @ 2024-10-07 16:40 gongchengship 阅读(274) 评论(0) 推荐(0) 编辑
摘要:在编程语言中,函数(在 C 语言中使用)和 方法(在 Java 中使用)是两个重要的概念,尽管它们在不同语言中的实现有差异,但在本质上都是 可重用的代码块。以下是对 C 语言中函数、Java 语言中方法的本质以及线程安全问题的详细分析: 1. C 语言中函数的本质 在 C 语言中,函数的本质是 一段 阅读全文
posted @ 2024-10-02 13:45 gongchengship 阅读(28) 评论(0) 推荐(0) 编辑
摘要:Java Agent、Byte Buddy 和 CGLIB 都是与 字节码操作相关的技术,但它们的作用和用途有所不同。以下是它们的定义、工作原理及相互关系的详细解释: 1. Java Agent 定义: Java Agent 是 Java 提供的一种机制,允许在程序运行期间,通过 Instrumen 阅读全文
posted @ 2024-10-01 20:18 gongchengship 阅读(99) 评论(0) 推荐(0) 编辑
摘要:是的,CGLIB(Code Generation Library)是一个强大的 字节码生成工具,主要用于在运行时动态生成类和代理。它允许在没有接口的情况下创建子类代理,并通过操作字节码生成新的类和方法。 CGLIB 的工作原理 CGLIB 通过生成目标类的 子类 来创建动态代理,允许拦截和修改类的行 阅读全文
posted @ 2024-10-01 20:17 gongchengship 阅读(78) 评论(0) 推荐(0) 编辑
摘要:Mockito 借助 Java Agent 和 字节码操作 技术来实现对 final 类和 final 方法的 mock。具体来说,它主要依赖于以下两个关键技术: 1. Java Agent (Instrumentation API) Mockito 通过使用 Java Agent 来实现运行时的字 阅读全文
posted @ 2024-10-01 20:16 gongchengship 阅读(161) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示