自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(71)
  • 资源 (1)
  • 收藏
  • 关注

原创 idea切换git分支时很卡

重命名 idea安装目录的bin文件夹下的 runnerw.exe 文件即可。

2026-04-22 16:53:32 78

原创 Liquibase preConditions 执行前判断详解

用于Liquibase执行前的判断, 可以附加到或changeSet中,以控制数据库的更新和执行。以下是使用的几个场景:记录changelog的作者在创建changelog时的假设。强制运行changelog的用户不违反这些假设。在执行不可恢复的更改(例如dropTable)之前,请执行数据检查。根据数据库的状态来控制运行哪些changesets和不运行哪些changesets。具体描述和使用也可查看官网。

2026-01-20 17:31:41 616

原创 Liquibase 常用语法

【代码】Liquibase 常用语法。

2026-01-20 17:30:26 415

原创 SpringBoot 集成 Liquibase

Liquibase是一个数据库修改的解决方案,使您能够从开发到生产更快、更安全地修改和发布数据库变更。Liquibase有多种使用方式, 直接集成到SpringBoot中是比较简单的一种, 它会在SpringBoot启动时自动检测运行, 省略了升级时手动运行Liquibase的步骤.更详细的描述请查看官网。

2026-01-20 17:29:53 728

原创 Spel的用法

SpEL即Spring Expression Language, Spring表达式语言, 能够在运行时构建复杂的表达式, 读写对象属性, 调用对象方法等等,与Spring完美契合. 赋予了Java动态功能, 利用其动态特性, 可以实现审批流等等。还有其它运算, 如算术运算、逻辑运算、比较运算、类实例化、instanceof、内联List、内联数组、集合投影、集合选择…

2025-12-22 09:58:16 275

原创 Linux 防火墙开放/限制端口

本文介绍了Linux系统中管理防火墙端口的两种主要方法:iptables和firewalld。使用iptables时,可通过命令查看、添加或删除规则来开放/限制端口,并支持TCP/UDP协议,修改后需保存规则。firewalld则通过firewall-cmd工具管理端口,可针对不同区域设置永久性规则,修改后需重载生效。两种方法均可实现端口访问控制,用户可根据系统环境选择合适的工具。

2025-12-20 08:42:43 816

原创 java 读取特定数据超时返回默认值如何设计?

我们可以通过多种方式实现,包括使用Future、CompletableFuture、线程池配合超时控制,或者使用CountDownLatch等同步工具。下面介绍几种常见的实现方式。我们面临一个场景:需要读取某个数据,如果操作超时,则返回特定数据。这种场景在分布式系统、网络请求、数据库查询等中非常常见。注意:中断任务不一定能立即停止任务,这取决于任务是否响应中断。因此,我们通常还会设置一个超时时间,避免无限期等待。

2025-11-18 17:33:35 347

原创 java并发 定时读取和清空ConcurrentMap如何保证线程安全?

针对短时高发、时效性不高的数据持久化场景,可以采用原子替换方案:使用AtomicReference原子替换整个ConcurrentHashMap。核心思路是通过getAndSet()方法在定时任务中原子化获取并清空缓存数据,同时其他线程继续写入新创建的Map。该方案实现简单高效,无锁竞争,仅可能在替换瞬间丢失极少量数据(可接受),适合高并发场景。若数据量极大,可采用分段处理方案减少单次处理压力,但实现复杂度较高。相比synchronized锁方案,原子替换避免了全局锁的性能损耗。

2025-11-18 17:11:25 571

原创 Arthas 监控java程序的线程,内存,CPU等

Arthas 是一款非常强大的 Java 诊断工具,由阿里巴巴开源。它能在不修改应用代码、不重启服务的情况下,对线上问题进行实时诊断和排查。后,它会列出当前机器上所有的 Java 进程,你只需要输入对应进程的序号,就能附加到目标应用上,开始诊断。连接到目标应用后,你就进入了 Arthas 的交互界面。下表汇总了最常用和关键的诊断命令,帮助您快速上手。下图是使用脚本方式监控的示例。

2025-11-18 13:42:59 816

原创 ES踩了一坑 script查询与float类型的精度

摘要:在Elasticsearch查询中,发现计算比例时结果异常。查询单个文档时receivableAmount显示6.38,但在区间查询时实际运算值为6。经排查发现是由于字段被错误定义为scaled_float类型且精度设为1,导致数据截断。最终通过调整字段类型并重建索引解决问题,这揭示了ES中数据类型设置对查询结果的重要影响。(149字)

2025-11-14 16:51:14 289

原创 spring-boot和spring-cloud、spring-cloud-alibaba的版本对应关系

spring-boot和spring-cloud、spring-cloud-alibaba的版本对应关系。

2025-11-11 10:49:02 1052

原创 ES查询语法总结

本文介绍了Elasticsearch的主要查询方法: 全文检索:包括Match Query(分词搜索)和Multi-match Query(多字段搜索) 精确查询:涵盖Term Query(精确匹配)、Terms Query(多值匹配)、Range Query(范围过滤)和Exists Query(字段存在性检查) 复合查询:重点介绍Bool Query,支持must、must_not、should和filter逻辑组合 特殊查询:包含Match_all、Wildcard、Prefix和Fuzzy等特殊查询

2025-11-03 15:51:42 1068

原创 ES 使用URL增删改查

本文介绍了 Elasticsearch 通过 RESTful API 进行数据操作的基本方法。内容涵盖创建索引、插入/更新/查询/删除文档等基础操作,以及批量处理和聚合查询等高级功能。详细说明了 URL 结构、HTTP 方法使用,并补充了认证方式的两种实现,包括 URL 明文认证和 Basic Auth 请求头认证。适用于快速上手 ES 的 API 调用,但需注意生产环境避免 URL 明文传递凭证。

2025-11-03 15:46:08 1127

原创 SpringCloud 获取Feign请求的真实IP地址

文章摘要:本文介绍如何通过自定义Feign客户端获取真实请求IP地址。核心方法是替换默认的Feign HttpClient,具体实现包括:1)创建配置类FeignClientConfig,使用自定义的InFeignClient替代默认客户端;2)实现InFeignClient类继承Client.Default,重写execute方法处理请求。这种方案通过拦截Feign请求,可以在执行前后获取请求信息,适用于需要监控或记录请求来源IP等场景。代码示例展示了完整的配置和实现过程。

2025-10-17 14:50:20 245 1

原创 @FeignClient 添加请求头header的4种方法

本文介绍了在Feign客户端中添加请求头的几种方法。对于单个请求,可通过三种方式实现:1)在@RequestMapping注解的headers属性中添加;2)使用@RequestHeader注解传递头信息;3)通过@Headers注解添加固定头信息。对于全局需求,可通过实现RequestInterceptor接口,在apply方法中统一添加请求头,如从当前请求中获取并传递Authorization等头信息。这些方法可根据不同场景灵活选择,满足微服务间调用的头信息传递需求。

2025-10-17 14:48:41 419

原创 java 文件压缩/解压工具类

本文介绍了一个常用的Java文件压缩工具类FileUtil,主要功能包括: 文件复制功能:提供copyTo()方法实现文件复制,支持自动获取文件扩展名和覆盖已存在文件。 ZIP压缩功能: zipFiles()方法可将多个文件压缩为ZIP包 zipFilePath()方法支持文件和目录的递归压缩 zipFolder()方法专门用于压缩整个文件夹 实现特点: 使用Java原生ZIP库处理压缩 支持Windows/Linux路径分隔符处理 包含完善的错误处理和日志记录 使用Hutool工具类简化IO操作 该工具类

2025-10-15 16:51:33 167

转载 JVM调优

转载自。

2025-10-14 10:45:38 64

原创 java8 最优雅的多线程开发——CompletableFuture

CompletableFuture是Java 8引入的异步编程工具,支持任务编排和函数式处理。它提供runAsync()和supplyAsync()创建任务,join()/get()获取结果。为避免线程饥饿,建议为不同业务创建独立线程池而非使用默认的ForkJoinPool.commonPool()。CompletableFuture支持thenApply()、handle()等方法进行任务链式处理,以及thenCombine()、allOf()等组合多个任务。代码示例展示了如何用thenCombine()

2025-09-30 10:40:41 1023

原创 Spring Boot 事件发布与监听 观察者模式的实际应用

Spring Boot基于观察者模式提供事件发布与监听机制,实现组件解耦通信。核心包括事件(继承ApplicationEvent)、发布者(ApplicationEventPublisher)和监听器(实现ApplicationListener或使用@EventListener注解)。实现步骤:1)创建自定义事件类;2)定义监听器处理逻辑,支持同步/异步执行;3)通过ApplicationEventPublisher发布事件。高级特性包括异步处理(结合@Async和线程池配置)和事务绑定事件,适用于用户注册

2025-09-25 17:22:08 982

原创 spring 自定义注解+AOP切面,控制任务是否执行

本文介绍了使用Spring AOP实现任务开关控制的方法。首先定义了一个自定义注解@TaskSwitch,包含任务名称、开关状态和工作日执行限制等参数。然后通过切面类TaskControlAop实现环绕通知,根据注解参数判断是否执行任务,并支持工作日限制和异常处理。最后在业务方法上添加注解并启用AOP代理即可实现灵活的任务控制。这种方法实现了业务逻辑与控制逻辑的解耦,便于任务的状态管理和执行控制。

2025-09-24 09:14:51 150

原创 Spring注解不生效?

摘要: Spring注解(如@Async、@Transactional)或自定义注解在同类方法间调用时不生效,原因是AOP动态代理仅拦截外部调用。解决方案: 使用AopContext.currentProxy():通过代理对象调用方法,需配置@EnableAspectJAutoProxy(exposeProxy=true)。 抽取方法到新类(推荐):遵循面向接口编程,将注解方法移至独立类中调用。 示例验证: 事务注解失效时,需通过代理调用insert()方法方可回滚。 异步调用失效时,将@Async方法移到

2025-09-24 09:09:06 394

原创 jdk9+ jdk11 如何配置gc日志

JVM日志参数配置指南 本文介绍了JDK9+版本中JVM日志参数-Xlog的详细配置方法。主要内容包括:参数格式说明(四个占位符:日志内容、输出类型、日志标记、输出配置),日志级别表(trace到error),输出类型表(stdout/file),日志标记表(time/pid等)。同时提供了-Xms/Xmx等堆参数配置示例,并指出JDK9后废弃了PrintGC等旧参数。最后附有官方文档链接和日志效果示例图,帮助开发者正确配置JVM日志功能。

2025-09-18 09:27:23 478

原创 jdk下载地址【官网】

本文提供了两个主流Java开发工具包(JDK)的下载链接:OpenJDK和Oracle JDK。用户可通过修改URL末尾的版本号(如11)来获取不同版本的JDK。OpenJDK是开源版本,Oracle JDK则包含商业功能。两个链接均支持Java 11等多个版本下载,方便开发者根据需求选择合适的JDK版本进行开发。

2025-09-18 09:24:07 175

原创 如何禁用笔记本键盘? 笔记本键盘坏了

摘要:笔记本键盘出现自动输入"q"的故障,尝试扣键和禁用驱动无效后,最终通过命令提示符禁用内置键盘成功。具体步骤:以管理员身份运行cmd,输入"sc config i8042prt start= disabled"并重启即可禁用键盘;恢复时使用"sc config i8042prt start= auto"命令。该方法经测试有效,为键盘故障提供了一种解决方案。(99字)

2025-09-18 09:19:16 747 1

原创 Maven 深入profiles和mirrors标签

Maven的settings.xml文件中,<profiles>用于定义可动态切换的全局配置(如仓库地址、环境变量等),通过<activeProfiles>或命令行参数激活,实现多环境隔离;而<mirrors>则用于配置仓库镜像地址,可结合profiles实现不同环境的镜像切换。profiles适用于全局配置,而pom.xml中的profiles仅作用于当前项目。两者配合可提升多环境构建效率,但需注意ID唯一性和敏感信息加密。

2025-09-17 15:11:10 1760

原创 IDEA 不显示Local Changes / Shelf

摘要:在IntelliJ IDEA中设置非模态提交界面,需进入File → Settings → Version Control → Commit,勾选"Use non-modal commit interface"选项。该操作允许在不关闭当前窗口的情况下提交代码变更,提升开发效率。

2025-09-17 15:05:54 465 1

原创 Maven 只打包部分模块,跳过单元测试... 常用打包参数

本文总结了Maven构建工具的常用命令行参数,分为七大类:基础参数(如跳过测试、调试模式)、模块控制(指定构建模块及其依赖)、打包控制(跳过Assembly插件等)、构建输出(自定义目录和文件名)、插件参数(JAR/Shade插件配置)、性能优化(并行构建)以及完整应用示例。同时强调了参数顺序、插件配置优先级和依赖冲突等注意事项,帮助开发者灵活控制Maven构建流程,适用于不同开发场景。

2025-09-17 15:03:17 648

原创 java 根据getter和setter方法的Lambda表达式获取字段名

本文介绍了通过Java的SerializedLambda类实现Lambda表达式方法名获取的技术方案。核心思路是利用Lambda序列化时生成的SerializedLambda对象,通过反射调用其writeReplace()方法获取方法信息。文章提供了完整的代码实现,包括IGetter和ISetter接口定义,以及LambdaBeanUtils工具类,实现了从Lambda表达式获取方法名、转换为数据库字段名和对象属性名的功能。关键方法getSerializedLambda()通过反射机制获取Lambda序列化

2025-09-12 14:20:54 393

原创 java 生成随机数的5种方式 其中SecureRandom可指定算法

本文介绍了Java中生成随机数的多种方法:1. 基础方法(非安全场景)包括Math.random()和Random类,适用于游戏、测试等场景;2. 安全随机数生成使用SecureRandom类,支持DRBG算法,适用于加密等高安全需求场景;3. 多线程环境下推荐使用ThreadLocalRandom;4. 高级技巧包括自定义随机分布。文章还对比了不同随机数生成器的特性,并提供了详细的代码示例和安全配置说明。

2025-09-12 11:09:33 1397

原创 docker 拉取本地镜像

摘要:Docker拉取本地镜像的三种方法:1)使用docker pull从本地仓库拉取;2)通过docker load命令加载tar格式的镜像文件;3)先用docker save导出镜像为tar文件,再用docker import导入。用户可根据实际需求选择适合的方法。(99字)

2025-09-10 17:07:20 350

原创 docker 重命名镜像

在Docker中无法直接重命名镜像,但可通过以下方法实现类似效果:1)使用docker tag命令为镜像添加新标签;2)删除旧镜像后重新以新名称拉取或构建;3)在Docker Compose文件中更新镜像名称并重新部署。这些方法都不会影响容器运行,其中标签方式最简单常用。

2025-09-10 17:06:53 689

原创 docker 设置镜像源

摘要:本文介绍了如何配置Docker镜像加速源。首先创建并编辑/etc/docker/daemon.json文件,添加包含22个国内镜像源地址的registry-mirrors配置项,并设置2个不安全注册表地址。然后执行systemctl daemon-reload重载配置,重启Docker服务后,通过docker info命令验证配置是否生效。该配置可显著提升国内用户拉取Docker镜像的速度。

2025-09-10 17:05:30 183

原创 Springboot整合Jasypt 对配置文件中的密码进行加密

摘要: 本文介绍了使用Jasypt实现Spring Boot配置文件加密的方法。首先添加Maven依赖,配置加密参数(盐值、算法等)。然后提供加解密工具类,支持多种PBE算法,并演示了加密/解密流程。配置文件中敏感信息需替换为ENC(加密结果)格式。为增强安全性,建议自定义加密器,通过实现StringEncryptor接口并指定算法和盐值,避免默认加密规则带来的风险,最后通过jasypt.encryptor.bean配置启用自定义加密器。

2025-09-09 10:23:14 402

原创 jsessionid 到底是什么

摘要 本文探讨了Web应用中URL中出现的jsessionid参数及其作用。jsessionid是J2EE容器用于标识用户会话的变量,通常通过Cookie存储在内存中,但若用户禁用Cookie,则需通过URL重写方式传递(形如;jsessionid=xxx)。为确保会话可用性,开发者应使用response.encodeURL()或response.encodeRedirectURL()方法处理跳转URL,自动适配Cookie禁用场景,维护会话连续性。文中强调了正确处理jsessionid对保障Session

2025-09-09 10:21:24 1311

原创 CAS Session过期时间配置 从源码分析

本文分析了CAS系统中TGT(Ticket Granting Ticket)的过期策略配置机制。通过源代码解析发现,TGT过期策略主要通过CasCoreTicketsConfiguration类实现,提供多种策略:1)当maxTimeToLiveInSeconds和timeToKillInSeconds均小于零时TGT永不过期;2)默认组合策略为8小时绝对过期或2小时空闲过期;3)可配置Hard Timeout强制过期策略。特别指出Remember Me功能会覆盖其他策略,当启用时强制使用HardTimeo

2025-09-09 10:09:10 864

原创 CAS6.3 SSO单点服务搭建

CAS 6.3环境搭建与数据库认证配置摘要 本文介绍CAS Server 6.3的环境搭建与配置过程。环境要求包括JDK11、Gradle 7.0+和Tomcat 9.0+。详细说明了Gradle的配置方法,包括阿里云镜像设置和build.gradle文件修改。通过执行gradlew命令完成项目构建,并配置允许HTTP访问。最后演示了如何集成MySQL数据库进行用户认证,包括添加JDBC依赖、配置数据库连接参数和设置密码加密方式(支持BCRYPT等算法)。文中还提供了测试账号和访问示例,帮助用户快速验证配置

2025-09-08 08:44:03 1877

原创 非对称加密RSA、DSA和ECC Java实现

非对称加密算法主要包括RSA、DSA和ECC三种。RSA基于大数分解难题,可用于加密和数字签名;DSA专注于数字签名验证;ECC利用椭圆曲线数学,在相同安全性下使用更短密钥。文章通过Java代码示例展示了三种算法的实现,包括密钥生成、加密解密、签名验证等核心功能。其中RSA和DSA使用标准JDK库,而ECC需要BouncyCastle提供支持。这些算法在保障数据安全传输和身份认证方面发挥着重要作用。

2025-09-05 10:59:16 374

原创 AES对称加密 Java实现

AES是目前广泛使用的对称加密算法,支持128/192/256位密钥长度。它采用分组加密模式(如ECB、CBC、CTR等)处理变长数据,其中CBC和CTR模式安全性较高。明文不足16字节时需填充(如PKCS5Padding)。Java实现示例展示了密钥生成、ECB/CBC/CTR模式的加密方法,涉及密钥处理、初始向量(IV)生成等关键步骤,通过Cipher类完成加密操作,最后使用Base64编码输出密文。

2025-09-05 10:57:55 485

原创 python爬虫 获取最近7/15/30/40天的天气

这是一个Python天气爬虫脚本,可以从tianqi.com网站获取指定城市的天气预报。主要功能包括:1) 读取city_list.txt中的城市列表(格式为城市名-拼音);2) 自动爬取40天天气数据;3) 将结果写入city_weather.txt文件。使用BeautifulSoup解析网页,requests获取数据,支持修改获取天数(7/15/30/40)。首次运行会自动创建示例城市列表文件。

2025-09-05 10:09:36 264

原创 python 获取必应每日壁纸,并设为桌面

本文介绍了一个Python脚本,用于自动下载Bing每日壁纸并设置为桌面背景。代码支持Windows和Linux系统,主要功能包括:1)获取Bing壁纸URL和版权信息;2)下载保存图片到指定目录;3)添加文字水印;4)自动设置壁纸。Windows系统使用win32api设置壁纸,Linux使用gsettings命令。脚本可配置为定时任务实现每日自动更新。安装依赖库包括requests、Pillow和pypiwin32。代码提供了两种水印添加方式:Linux使用convert命令,Windows使用PIL库

2025-09-05 10:04:55 217

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除