- 博客(356)
- 收藏
- 关注
原创 HTTP接口调用时报错 java.io.IOException: Connection reset by peer解决办法
在接口调用时,遇到如下报错:/:?/:?/:?/:?/:?/:?/:?/:?/:?/:?/:?/:?
2024-04-25 15:32:43 76
原创 Java飞行记录 Jfr 文件分析,JMC工具的安装和使用详解
JMC 可以读取 JFR 事件记录文件,并提供复杂的分析和视图,帮助你深入理解 JVM 的行为和性能表现。
2024-04-22 14:20:12 20
原创 Hibernate使用HQL的注意事项
HQL是Hibernate Query Language的缩写,它是为Hibernate框架设计的面向对象的查询语言。Hibernate是一个Java平台的对象关系映射(ORM)解决方案,它提供了一种将Java应用程序中的对象模型映射到关系数据库表结构的方法。使用Hibernate, 开发人员可以使用Java对象来表示和操作数据库中的数据,而不需要编写大量的SQL码。HQL的设计灵感来源于SQL,但与此同时,它允许开发人员用面向对象的方式来编写查询。
2024-04-07 17:41:03 40
原创 Spring的BeanFactory和FactoryBean有什么区别?
定义了ioc容器的最基本形式,并提供了ioc容器应遵守的的最基本的接口,也就是Spring ioc所遵守的最底层和最基本的编程规范,它只是个接口,并不是ioc容器的具体实现。它的职责包括:实例化、定位、配置应用程序中的对象及建立这些对象间的依赖。再来说说。
2024-04-03 15:23:23 208
原创 分别使用TCP/UDP实现互相实时发送消息,接收消息功能
UDP(用户数据报协议)是一种简单的、无连接的、基于数据报的传输层协议。它是互联网协议套件中的一部分,与TCP协议并列,用于在网络上传输数据。无连接性:UDP是一种无连接的协议,通信双方在通信之前不需要建立连接。每个UDP数据包(也称为数据报)都是独立的,它们之间没有关联性,可以单独发送,也可以按照任意顺序发送。不可靠性:UDP不提供可靠的数据传输机制,它不使用序号、确认和重传等机制来确保数据的可靠传输。因此,UDP数据包在传输过程中可能会丢失、重复或者乱序,应用层需要自行处理这些问题。简单性。
2024-03-22 16:13:41 221
原创 BigDecimal类的使用,用于精确计算任意精度的数字
BigDecimal是 Java 中用于精确表示任意精度的十进制数的类。在很多情况下,使用基本数据类型(如double或float)进行浮点数计算可能会导致精度丢失或舍入错误。BigDecimal提供了一种更精确的解决方案,可以处理需要高精度计算的场景,比如财务应用或科学计算等。BigDecimalBigDecimal总的来说,BigDecimal类的作用是提供一种精确表示和计算十进制数的机制,以解决需要高精度计算的问题。
2024-03-21 15:55:49 113
原创 The service already exists!怎么解决,Windows怎么安装/卸载服务?
有时候,我们在Windows系统上安装服务时会遇到报错,
2024-03-14 11:48:26 180
原创 Gradle项目怎么引入另一个独立的Gradle构建结果,Gradle进阶操作教程
总的来说,Gradle 是一款功能强大、灵活且易于扩展的构建工具,广泛应用于各种类型的软件项目中,包括 Java、Android、Web 应用程序等。它的特点包括灵活的构建配置、丰富的插件生态系统和多项目构建支持,使得开发团队能够高效地管理和构建复杂的软件项目。3. 如果A项目要从本地引入 root 项目的构建结果,在subprojectA 项目的setting.gradle文件中添加,:Gradle 使用增量构建的方式,只重新构建发生变化的部分,可以加快构建速度。
2024-03-12 09:25:43 105
原创 Java阻塞队列,BlockingQueue常用Api介绍
在 Java 中,阻塞队列是一种特殊的队列数据结构,它具有阻塞操作的特性,即当队列为空时,获取元素的操作会被阻塞;当队列已满时,添加元素的操作也会被阻塞。Java 提供了包中的接口,以及其实现类,用于实现阻塞队列。这些阻塞队列都实现了接口,提供了诸如puttakeofferpoll等方法,可以实现阻塞的添加和获取元素操作。
2024-03-11 10:39:02 44
原创 Java项目使用pop命令报错 ERR wrong number of arguments for ‘spop‘ command的解决办法
在我们的Spring+Redis的项目中可能会遇到这种错误:导致这种问题的表象是我们代码中使用了Redis的pop命令。
2024-03-06 11:19:27 468
原创 达梦数据库修改字段为NOT NULL的SQL语句
2.修改字段CONTENTTYPE为 NOT NULL(非空)3. 修改字段为 NULL(允许空)
2024-03-04 11:43:23 536
原创 SpringBoot启动后自动执行功能,提供的各种Event事件顺序整理
Spring Boot的核心是简化Spring应用程序的开发和部署。它通过提供一组开箱即用的功能和约定大于配置的原则,大大简化了Spring应用程序的配置和开发过程。:Spring Boot提供了一个快速启动的引导器,可以轻松创建和运行一个基本的Spring应用程序,无需复杂的配置。:Spring Boot通过自动配置功能,根据类路径下的依赖、Bean的定义等信息,自动配置Spring应用程序的环境,大大减少了手动配置的工作量。
2024-03-01 10:00:46 161
原创 Spring启动后默认注入的ConfigurableEnvironment,可用于获取系统属性
Spring Boot在启动时会自动注入默认的ConfigurableEnvironment对象。ConfigurableEnvironment是Spring Framework中的接口,它代表了Spring应用程序的环境配置,包括配置属性、配置文件等信息。在Spring Boot应用程序启动时,Spring Boot会自动创建并配置一个ConfigurableEnvironment对象,该对象包含了应用程序的所有配置信息。
2024-03-01 09:26:55 195
原创 实现Spring的Ordered接口,控制Bean的初始化优先级最高
实现Spring框架中的Ordered接口可以控制对象的初始化顺序。Ordered接口定义了一个getOrder()方法,返回一个整数值,表示对象的顺序,数值越小,优先级越高,越先被初始化。通过实现Ordered接口,可以确保在有多个对象需要按顺序初始化时,它们的初始化顺序是可控的。
2024-02-29 15:37:53 437
原创 Idea报错Initialization script ‘C:\Users\XXX\AppData\Local\Temp\Test3_main__.gradle‘ line: 81解决方法
Idea启动项目报错:FAILURE: Build failed with an exception.* Where:Initialization script 'C:\Users\fudingwei\AppData\Local\Temp\Test3_main__.gradle' line: 81* What went wrong:Execution failed for task ':study:Test3.main()'.> The value for task ':study:Test3.mai
2024-02-29 11:32:52 558
原创 Elasticsearch的基本安装教程,Elasticsearch+SpringBoot实现简单的增删改查功能
Elasticsearch 是一个开源的分布式搜索和分析引擎,最初由 Elastic 公司开发。它是基于 Apache Lucene 的搜索引擎构建的,提供了强大的搜索和分析功能,并支持实时数据检索和分析。Elasticsearch 是一个分布式系统,数据可以分布存储在多个节点上,提高了数据的可用性和性能。Elasticsearch 提供了实时搜索和分析功能,可以在大规模数据集上执行高效的搜索、聚合、过滤、排序等操作,并能够实时更新和索引数据。
2024-02-27 17:29:18 425
原创 Redis的发布订阅功能教程,实现实时消息和key过期事件通知功能
Redis的发布/订阅(Pub/Sub)功能是一种消息传递模式,用于实现消息发布者(publisher)和订阅者(subscriber)之间的消息通信。在这种模式下,消息的发送者(发布者)将消息发送到特定的频道(channel),而订阅了该频道的接收者(订阅者)将会接收到这些消息。发布者负责向指定的频道发布消息。发布者将消息发送到指定的频道后,所有订阅了该频道的订阅者都会接收到这些消息。频道是消息的传输通道,它用于将消息从发布者传递给订阅者。
2024-02-27 09:41:43 380
原创 Spring Cache框架使用教程,通过简单且强大的方式在应用程序中使用缓存提高性能
综上所述,Spring Cache 的原理是基于 AOP 和缓存注解,通过 AOP 拦截器在方法调用前后执行缓存逻辑,使用缓存管理器管理缓存,并将缓存操作委托给实际的缓存存储系统进行处理,从而实现方法级别的缓存功能。Spring Cache 框架支持多种缓存实现(如内存缓存、Redis、Ehcache 等),并且提供了灵活的配置选项和扩展点,可以根据具体需求选择合适的缓存策略和实现。在运行时,Spring Cache 会根据配置选择合适的缓存管理器,并使用它来管理缓存的创建、访问、更新和清除等操作。
2024-02-23 14:50:35 426
原创 Java的Jstat -gc命令参数,实时监控JVM内存使用情况,分析GC的各个参数含义
JVM(Java Virtual Machine)是Java虚拟机的缩写,是Java平台的核心组件之一。它是一个在物理计算机上运行的虚拟机器,负责执行Java字节码(Java bytecode)并提供了Java程序运行时环境。: JVM负责加载Java字节码,并将其解释或者编译成本地机器代码执行。这使得Java程序具有跨平台的特性,因为相同的字节码可以在任何安装了JVM的平台上运行。: JVM管理Java程序的内存,包括分配和释放内存以及垃圾回收。
2024-02-23 08:48:59 269
原创 Java8新特性Optional类的使用,链式编程形式解决判空问题
这种方式要求值不能为 null,如果传入的值为 null,则会抛出 。这种方式可以接受 null 值,如果传入的值为 null,则会创建一个空的 Optional 对象。 这种方式创建一个空的 Optional 对象,不包含任何值。注意:在使用 Optional 类时,建议避免使用 of 方法,因为如果值为 null,会抛出异常。通常情况下,使用 ofNullable 或者空的 Optional 对象是更安全的方式。使用 Optional 类能够更加清晰地表达代码中可能为 null 的情况,同时
2024-02-22 08:52:38 600
原创 Spring、SpringMVC、SpringBoot的常用注解汇总大全
1、spring的常用注解@Component: 表明一个类是 Spring 管理的组件。 @Controller: 用于标记控制器类。 @Service: 用于标记服务类。 @Repository: 用于标记数据访问对象(DAO)类。 @Autowired: 自动装配 bean,根据类型进行依赖注入。 @Qualifier: 与@Autowired 结合使用,根据指定的名称装配 bean。 @Value: 注入属性值,可以从外部属性文件中读取。 @Configuration: 声明一个
2024-02-22 08:51:21 150
原创 如何查询数据库所有的序列,序列的属性,序列的当前值
其中,seq_name 是序列的名称,start_value 是序列的起始值,increment_value 是序列的增量,min_value 和 max_value 是序列的最小值和最大值,CYCLE 和 NOCYCLE 用于指定是否循环序列。序列是数据库中的一种独立对象,可以在表的任何地方使用,以生成唯一的、递增或递减的数值序列。在使用序列时,通常需要先创建序列对象,然后在表的列中使用序列生成的值。序列生成的数值是唯一的,每次获取序列的值都会生成一个不同的数值。这将返回序列seq_name的下一个值。
2024-02-21 10:00:52 228
原创 如何查询一个约束是属于数据库中的哪个表
唯一约束用于确保表中的列中的值是唯一的,但与主键约束不同,唯一约束允许列中的值为 NULL。唯一约束通常用于确保表中的某些列中的值是唯一的,但不要求每个行都有一个唯一标识符。约束是数据库设计中重要的概念,能够确保数据库中的数据符合预期的规范和要求,提高数据的质量和可靠性。约束可以应用于表的列级别或表级别,以确保数据库中的数据满足特定的要求。检查约束用于定义表中列的值的条件,确保列中的值满足特定的条件。检查约束通常用于限制列中的值的范围,或者确保列中的值满足特定的逻辑条件。
2024-02-21 09:54:56 325
原创 实现一个Windows环境一键启停Oracle的bat脚本
Oracle数据库具有优化的查询处理器和并发控制机制,能够实现高效的查询处理和事务管理。Oracle数据库提供了丰富的功能和工具,包括高级查询、数据分析、数据仓库、数据挖掘、备份恢复、高可用性、性能优化等功能,能够满足各种复杂的数据库需求。Oracle数据库支持水平和垂直的扩展,能够在不同的硬件和软件平台上部署,并提供了丰富的扩展和集群选项,以满足不同规模和需求的数据库应用。注意:不同版本的Oracle安装的服务名称是不一样的,需要自己去看有哪些Oracle服务,然后手动修改脚本中的服务名!
2024-02-20 15:49:50 290
原创 @ConditionalOnClass和@ConditionalOnBean的作用和使用方式,以及两者的区别
ConditionalOnClass 注解是 Spring Boot 中的一个条件注解,用于根据类路径中是否包含指定的类来决定是否加载一个 Bean 或配置类。这个注解可以用于在特定条件下控制 Bean 或配置类的加载行为。
2024-02-18 14:50:10 171
原创 @ConditionalOnProperty和@DependsOn两个注解的作用和使用方式
ConditionalOnProperty 是 Spring Boot 中的一个条件注解,用于根据配置属性的存在与否来决定是否加载一个 Bean 或配置类。这个注解可以用于在特定条件下控制 Bean 或配置类的加载行为。首先需要在application.yml文件中加入对应的配置表示指定application.yml中的配置表示当这个配置为true时生效如果没有设置时,即 @ConditionalOnProperty(name = "myapp.feature.enabled") 表示。
2024-02-18 14:32:01 147
原创 实现一个支持高并发的HttpClient工具,成倍提升系统的性能和QPS
是 Apache HttpClient 库中的一个核心类,用于发送 HTTP 请求并处理 HTTP 响应。HttpClient提供了发送各种类型的 HTTP 请求的方法,包括 GET、POST、PUT、DELETE 等。通过这些方法,你可以向服务器发送请求,并获取服务器的响应。HttpClient可以帮助你处理服务器返回的 HTTP 响应。你可以从响应中获取状态码、头部信息、响应内容等,并根据需要进行相应的处理,例如解析 JSON、XML 等格式的数据。HttpClient。
2024-02-07 16:30:36 251
原创 Spring Batch 批处理框架适配达梦数据库,实现从文件批量读取写入数据库(完整教程)
Spring Batch 是一个基于 Spring 的批处理框架,用于开发和执行大规模、高性能、可靠的批处理应用程序。它提供了丰富的功能和组件,用于处理复杂的批处理任务,例如大数据ETL(Extract-Transform-Load)、数据清洗、数据迁移、报表生成等。Spring Batch 提供了模块化的架构和丰富的扩展点,使得开发者可以根据需要定制和扩展框架的功能。Spring Batch 集成了 Spring 的事务管理机制,确保批处理任务的数据一致性和事务完整性。
2024-02-06 16:09:22 426
原创 解决使用达梦数据库遇到的一些问题,Unable to detect database type at和DatabaseType not found for product name: [DM DBMS
这个报错可以看到出现了【Unable to detect database type】,说明程序未识别到这种数据库类型解决办法:application.yml文件配置加上即可。
2024-02-06 15:12:47 366
原创 JVM启动参数怎么设置
nohup java -Xms8G -Xmx8G -XX:+UseG1GC -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8097 -Dspring.config.location=/data/backend/application.yml -Dfile.encoding=UTF-8 -jar fdw.jar >log.txt 2>&1 &nohup:表示关闭命令窗口,程序依然执行 -
2024-02-05 17:27:06 389
原创 怎么提高单次请求中多次查询数据库的速度,记录一种巧妙的实现方案
ThreadLocal是Java,它允许开发者在多线程环境中创建和维护每个线程独有的变量副本。这些副本与全局变量不同,不会受到其他线程的影响,从而提高了多线程应用中数据一致性和安全性。ThreadLocal 的设计使得每个线程都能够独立地操作自己的变量副本,这在处理共享资源时尤为有用。总结来说,ThreadLocal 提供了一种机制,允许多个线程能够同时访问并修改同一个对象的多个副本,而这些副本彼此之间是隔离的。
2024-02-04 16:13:49 55
原创 策略模式+SpringBoot接口,一个接口实现接收的数据自动分流处理
定义了算法族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化,不会影响到使用算法的客户。策略模式的精髓就在于将经常变化的一点提取出来,单独变成一类,并且各个类别可以相互替换和组合。
2024-01-31 17:40:24 493
原创 dm.jdbc.driver.DMException:Column [XXX] out of length,解决达梦数据库报错
在使用达梦数据库时,可能会遇到如下报错:/:?/:?/:?/:?/:?/:?
2024-01-31 16:28:00 437
原创 达梦数据库的最大连接数,怎么查看和设置
达梦数据库是国内领先的数据库产品开发服务商,国内数据库基础软件产业发展的关键推动者。公司为客户提供各类数据库软件及集群软件、云计算与大数据等一系列数据库产品及相关技术服务,致力于成为国际顶尖的全栈数据产品及解决方案提供商。此公司服务于包括建设银行、中国人保、国家电网、中国航信、中国移动、中国烟草等在内的知名用户,成功应用于金融、能源、航空、通信等数十个领域。根据赛迪顾问及IDC发布的报告显示,2019年至2022年公司产品市占率位居中国数据库管理系统市场国内数据库厂商前列。
2024-01-31 11:05:04 1124
原创 Hikari数据库连接池怎么配置,测试Hikari数据连接池最大连接数
HikariCP是Spring Framework 5.0的默认数据库连接池,这得益于他的高性能。它有如下优点:1、快速:Hikari连接池具有非常快的启动和关闭速度。连接池的大小可以在一秒钟内动态调整。2、高效:Hikari连接池具有极低的延迟和高效的并发性能。连接池只需要少量的线程进行管理,因此会产生较小的GC负载,同时可以支持高负载场景。3、稳定:Hikari连接池具有很好的稳定性和可靠性,它可以有效地避免由于连接泄漏、连接过期等问题导致的应用程序崩溃。
2024-01-31 10:47:29 232
原创 dm.jdbc.driver.DMException: 字符串截断,解决达梦数据库执行Insert语句报错
当我们使用达梦数据库执行SQL语句时,可能会遇到如下报错:dm.jdbc.driver.DMException: 字符串截断。
2024-01-30 17:25:38 1328
原创 Idea上操作Git回退版本,怎么保留本地已修改的文件,回退本地版本的四种方式代表什么?
Git的基本概念:Git是一个版本控制系统,用于管理代码的变更历史记录。核心概念包括仓库、分支、提交和合并。1、可以帮助开发者合并开发的代码2、如果出现冲突代码的合并,会提示后提交合并代码的开发者,让其解决冲突3、代码文件版本管理。
2024-01-25 16:54:43 301
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人