- 博客(259)
- 资源 (4)
- 收藏
- 关注
原创 JAVA springboot Access-Control-Allow-Origin
也就是说,只有当你的请求是通过浏览器发起的(比如前端 JavaScript 使用 fetch 或 XMLHttpRequest),这个头才会起作用。只有来自https:/your-domain.com的前端页面(即请求的来源 Origin 是这个域名),才能通过浏览器发起跨域请求访问这个接口。https://epos.whbswdt.com/xxx  也被允许(路径不影响)https://www.epos.whbswdt.com  子域名不同,也不被允许。区分大小写 & 完全匹配。
2025-06-06 09:52:38
174
原创 Springboot从consul中获取配置
3、在http://127.0.0.1:8500页面的 key/value 新建文件夹 /config/your-service/2、新增 bootstrap.yml ,springboot版本低于3.3是优先读取bootstrap.yml的配置的。Springboot项目如何实现一启动就读取consul配置的信息如数据库连接。以下是实现步骤:(Springboot版本是 2.2.5.RELEASE)然后再建一个名叫data的key,设置yaml配置。启动后可以验证下启动端口是不是consul配置的端口。
2025-05-22 15:22:00
293
1
原创 Linux Systemd 管理java服务
systemd 是现代 Linux 发行版中用于初始化系统并管理服务的主要工具。通过创建一个 .service 文件来定义您的 Java 应用程序服务。1、创建一个服务单元文件,例如 /etc/systemd/system/my-java-app.service。2、刷新 systemd 配置:sudo systemctl daemon-reload。3、启动服务:sudo systemctl start my-java-app。
2025-05-22 14:57:50
248
原创 JAVA8怎么使用9的List.of
在 Java 8 中,List.of 方法并不可用,因为这是从 Java 9 开始引入的用于创建不可变列表的便捷方法。要在 Java 8 中达到类似的效果,您需要使用其他方式来创建列表。常规的方法是先创建集合对象然后再添加元素。1、使用Arrays.asList。
2025-05-22 10:43:38
483
原创 Linux /etc/rc.d/init.d/
在传统的 SysV init 系统中,服务启动脚本通常位于 /etc/rc.d/init.d/ 目录下。这些脚本可以直接执行以启动、停止或重启服务,并且可以接受参数如 start, stop, status 等。如果你想知道位于 /etc/rc.d/init.d/ 目录下的某个脚本文件实际上指向哪里,如果你想获取符号链接的目标而不关心其他信息,可以使用 readlink 命令。这对于脚本编写特别有用。
2025-05-19 11:14:08
185
原创 记录一个空指针的异常排查
(2) i.getSrvBegin() 返回 null。(3) i.getSrvEnd() 返回 null。(4) 字符串长度不够这个不是空指针异常,这个排除。点击这个单据,有时候却是正常的,没出现空指针的情况。(2) i 的srvBegin 值也不是空的。(3) i 的srvEnd 值也不是空的。1、加同步锁 synchronized。这就感觉很奇怪了,有点莫名其妙,😖。那么猜测出现问题的原因可能是。(1) i 为 null。(4) 字符串长度不够。(1) i 不是空的。3、设计为不可变对象。
2025-04-30 09:45:13
286
原创 为什么大多数JAVA应用不需要进行JVM优化
6. 性能监控和动态调整的能力通过使用性能监控工具(如 JVisualVM、JProfiler、Prometheus 等),可以实时观察 JVM 的运行状态,并根据实际需求进行动态调整,而不是一开始就进行复杂的调优。大多数 Java 应用程序不需要进行 JVM 优化的原因主要在于以下几个方面:1. JVM 本身的优化能力JVM(Java Virtual Machine)经过多年的发展,已经成为一个高度优化的运行环境。•JVM 调优可能会引入新的问题,例如内存泄漏、GC 暂停时间增加等,增加了调试的难度。
2025-04-29 17:31:40
395
原创 JAVA 枚举类的ordinal用法
通过上述方法,你可以根据 ordinal 值找到具体的枚举值,但请务必注意其潜在的风险并采取相应的预防措施。在这个例子中:BusinessType.TYPE_A.ordinal() 返回 0。BusinessType.TYPE_B.ordinal() 返回 1。BusinessType.TYPE_C.ordinal() 返回 2。或者如果枚举有特定的属性,可以遍历枚举实例来匹配这些属性值。2、values() 返回该枚举类型的所有实例的一个数组。1、.ordinal() 返回该枚举常量的序数。
2025-04-29 17:24:24
398
原创 Java \n使用注意事项
1、判断是否有换行符用indexOf,这里面用的是 \n。2、拆分正则表达式, 这里面用的是 \\n。\n是一个转义字符,表示换行符。
2025-03-11 10:12:45
293
原创 SQL 中为什么参数多了not in 比 in 慢多了,怎么优化
当参数比较少的时候还看不出来什么,但是遇到参数上了几百几千,那么 in 受的影响不大,not in 查询的结果就超级慢了。那么什么原因导致NOT IN 可能比 IN 慢很多呢?2. NULL值的影响。1. 逻辑复杂度不同。
2025-03-03 14:38:23
394
原创 Illegal mix of collations (utf8mb4_unicode_ci,IMPLICIT) and (utf8mb4_general_ci,IMPLICIT) for opera
这个错误信息表明在执行SQL查询时,您尝试比较两个字段或值,但这些字段或值使用了不同的字符集校对规则(collation)。具体来说,一个是 utf8mb4_unicode_ci,另一个是 utf8mb4_general_ci。MySQL不允许直接比较具有不同校对规则的字符串,除非明确地转换它们中的一个。如果合适,可以考虑将所有相关列的校对规则统一。您可以在SQL查询中使用 COLLATE 关键字来强制其中一个操作数使用特定的校对规则。1. 修改查询以显式指定校对规则。2. 更改表结构中的校对规则。
2025-02-18 15:27:37
812
原创 Uniapp扫普通二维码、小程序码、公众号消息携参数进小程序页面参数传递接收
如链接 https://www.example.com/miniapp?Uniapp开发的小程序接收扫普通二维码、小程序码、公众号消息携参数进小程序页面参数各是怎么样呢?3、公众号消息携参数。
2025-02-13 10:12:40
610
原创 HTML中如何保留字符串的空白符和换行符号的效果
有个字符串 储值门店{{thing3.DATA}}\n储值卡号{{character_string1.DATA}}\n储值金额{{amount4.DATA}}\n当前余额{{amount5.DATA}}\n储值时间{{time2.DATA}} ,1、style 中 设置 white-space: pre-line;3、\n替换成 然后使用 v-html ,这个方法不建议。2、加标签。
2025-01-15 14:36:58
570
原创 怎么使V-HTML中的图片自适应大小,不超过DIV宽度
对于大多数简单的用例,仅仅使用 max-width: 100% 和 height: auto 就足够了。这将确保图片不会超出其父容器的宽度,并且会根据容器大小自动调整自身大小,同时保持原始的宽高比例。怎么使V-HTML中的图片自适应大小,不超过DIV宽度。
2025-01-07 17:29:06
542
原创 vue 什么时候使用v-if 什么时候使用v-show
总之,在选择 v-if 或 v-show 时,应该考虑元素的显示频率以及对性能的影响。在 Vue.js 中,v-if 和 v-show 都是用来控制元素的显示与隐藏的指令,但它们的工作方式和适用场景有所不同。使用场景:适用于那些在大多数情况下不需要显示的元素,或者仅需要偶尔显示的元素。初始渲染开销:第一次渲染时,如果 v-if 的条件为假,则不会渲染该元素,因此在某些情况下可以节省初始渲染时间。初始渲染开销较大:即使元素不可见,v-show 也会将它渲染到DOM中,所以初次加载页面时可能会有额外的开销。
2025-01-07 15:32:30
204
原创 SimpleDateFormat parse方法出现java.lang.NumberFormatException: For input string: “20244.E202444E“ 格式化错误
SimpleDateFormat format方法出现java.lang.NumberFormatException: For input string: "20244.E202444E"这样的异常,数字格式化错误。这个其实就是并发的问题,当多个请求调用getRqPastDate方法的时候,并发导致异常发生。我传的日期也检查了下 2024-12-27 并没有什么问题,那么究竟什么导致的呢?加个同步锁,让程序执行完一个,再执行下一个。
2024-12-27 11:30:39
276
原创 SQLSERVER、MYSQL LIKE查询特殊字符和转义字符相同与不同
总结: 虽然 SQL Server 和 MySQL 在 LIKE 操作符的基本用法上有许多共同点,比如 % 和 _ 的使用,但在处理字符集 [ ] 和转义字符时存在一些不同。如果你希望编写可以在两个数据库系统中通用的代码,建议避免使用那些在两个系统之间有显著差异的功能,或者针对每个目标数据库系统适当地调整查询。要实现类似的否定效果,你可以使用正则表达式或其他方法。SQL Server 也有正则表达式的功能,但是通过 CLR 集成或者外部工具来实现,并不是内置的 LIKE 功能的一部分。
2024-12-25 13:53:44
569
原创 COS存储No content length specified错误提醒优化处理
在使用腾讯云的 COS (Cloud Object Storage) SDK 上传文件时,如果你遇到了警告信息 "No content length specified for stream data. Stream contents will be buffered in memory and could result in out of memory errors.",这通常意味着你正在尝试上传一个 InputStream 类型的数据,但是没有提供内容长度(Content-Length)。
2024-12-19 13:59:00
988
原创 redis 过期与清理
在Redis中,当一个键过期时,它会被自动标记为“已过期”,但并不意味着它会立即从内存中移除。Redis处理过期键的方式有两种主要机制:惰性删除与定期删除,这两种机制结合使用,既保证了大部分过期键能够及时得到清理,又避免了因频繁扫描所有键而导致的性能问题。答案:除非键过期时间设置不合理,或者迫于并发压力需要手动清理。redis 键过期了是不是就不用清理了?那么是否需要手动清理?
2024-12-06 14:23:36
452
原创 配置 Nginx 代理转发 OSS 图片
使用 Nginx 代理转发腾讯云 OSS 存储的图片时,Nginx 服务器会占用一定的带宽。这是因为 Nginx 服务器需要从 OSS 下载图片,然后再将图片传输给客户端。•如果跨域问题不严重,可以直接在客户端使用 OSS 的 URL 访问图片,这样不会占用 Nginx 服务器的带宽。1. 从 OSS 到 Nginx 服务器:Nginx 从腾讯云 OSS 下载图片。2. 从 Nginx 服务器到客户端:Nginx 将下载的图片传输给客户端。1、在Nginx中开启缓存。3、能直链访问的直链访问。
2024-11-14 14:58:56
626
原创 Mybatis 批量操作存在则更新或者忽略,不存在则插入
当插入的数据在这些唯一性约束列上与现有数据发生冲突时,MySQL 将不会插入新的记录,而是根据 ON DUPLICATE KEY UPDATE 子句进行相应的更新操作。2. 唯一索引(UNIQUE INDEX):除了主键之外,还可以定义唯一索引,保证某些列的组合是唯一的。ON DUPLICATE KEY UPDATE:当插入记录违反唯一键约束时,更新已存在的记录。INSERT IGNORE:当插入记录违反唯一键约束时,忽略该记录,并继续处理其他记录。
2024-10-24 14:22:14
1443
原创 Java 字符串占位格式化
如果你只需要简单的字符串替换和基本格式化,String.format 是一个很好的选择。如果你需要处理更复杂的格式化逻辑,MessageFormat 提供了更多的灵活性和功能。Java 提供了几种方式来处理字符串占位符,最常用的是 String 类的 format 方法和 MessageFormat 类。占位符 %s:字符串 ,%d:十进制整数,%f:浮点数,%t:日期/时间,%b:布尔值,%x 或 %X:十六进制整数。基本语法同上,但是占位符换成了 {0}、{1}、{2} 等:按顺序替换参数。
2024-10-18 14:43:43
1165
原创 Mybatis Plus 查看组装的SQL条件的办法
但是这个开启后日志内容太多,查找与定位较为麻烦。1、日志配置为 trace模式开启数据库语句打印。比喻:在logback.xml里配置。2、直接在需要调试的地方log日志。
2024-10-12 14:20:53
574
原创 JAVA MySQL或SQLSERVER处理大量update语句优化
在 MySQL 或者SQLSERVER 中处理大量 UPDATE 语句时,性能优化是一个关键问题。1、使用 CASE 语句进行批量更新。2、使用 JOIN 进行批量更新。
2024-09-24 15:55:51
518
原创 【BUG记录】JAVA8 集合的stream 报stream has already been operated upon or closed
报的错翻译一下就是流已经关闭了。
2024-09-18 16:06:58
319
原创 JAVA long 转 int 的坑
因此,当 long 类型的值转换为 int 类型时,如果该值超出了 int 类型的表示范围,将会发生截断,只保留低32位,导致转换后的值可能与原始值不同。相比之下,int 类型的取值范围是从 -2^31 到 2^31 - 1。当你将一个 long 值转换为 int 值时,如果该 long 值超出了 int 类型所能表示的范围,将会发生截断(也称为溢出)。当 long 类型的值转换为 int 类型时,实际上是通过位操作完成的,具体来说是通过将 long 值的高32位丢弃,只保留低32位。
2024-09-05 11:20:02
419
原创 Spring Boot @AllArgsConstructor 还是 @RequiredArgsConstructor
AllArgsConstructor 和 @RequiredArgsConstructor 不适合用来注入由 @Value 注解绑定的值,因为这些值通常是在运行时动态解析的,并且不是作为构造函数的参数注入。这意味着,如果你的类中有多个字段,并且希望在构造函数中初始化所有这些字段,那么可以使用 @AllArgsConstructor。在大多数情况下,@RequiredArgsConstructor 是更好的选择,因为它仅生成必要的构造函数,减少了不必要的代码,并且保持了依赖关系的清晰性。
2024-09-04 09:35:01
765
原创 MySQL删除操作时遇到1093 - You can‘t specify target table ‘xxx‘ for update in FROM clause
意思就是在 MySQL 中,您不能在 DELETE 语句的 FROM 子句中引用目标表,这是因为在 DELETE 语句中,目标表不能出现在 FROM 或 JOIN 子句中。您所尝试的查询违反了这个规则,因此收到了错误信息 You can't specify target table 'YOUR_TABLE' for update in FROM clause。下面是一个修改后的示例,它将按照您的需求删除重复的记录。
2024-08-21 08:47:50
855
原创 JAVA 封装一个工具类,将实例的里面的空值设为对应的默认值
JAVA 封装一个工具类,将实例的里面的空值设为对应的默认值,比喻字符串类型就设为默认 "", Integer就设为0。
2024-08-09 16:12:45
238
原创 Java 处理一张单据,处理花费时间挺久,有单号,不用redis怎么可以快速判断其在处理中,不需要再处理
在Java中处理长时间的任务并且需要避免重复处理同一张单据的情况下,在不使用Redis或其他外部存储服务情况下。方法二:使用文件系统 创建和删除文件记录状态。方法一:使用数据库表 表记录记录状态。方法三:使用本地缓存。
2024-08-06 11:34:52
361
原创 SQLSERVER IN 或者NOT IN 参数过多解决方案
select * from shangpin where spdm not in (...) 这个语句not in 参数如果很多可能超过2100个,怎么写SQL为好呢?如果是in 则用EXISTS。
2024-07-22 13:58:28
634
原创 Linux 关闭某个服务失败处理方法
1、检查进程状态 ps aux | grep eposGatewayService。2、手动处理进程 sudo kill -9 7080。从上面运行结果来看已经可以了。
2024-07-11 15:15:57
498
notepadd++.zip
2020-04-17
app.sh jar安装成linux服务安装命令脚本
2020-04-17
JAVA-COM Bridge 中间件
2020-04-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人