- 博客(163)
- 资源 (6)
- 收藏
- 关注
原创 SpringBoot 参数校验
定义校验注解String message() default "自定义校验信息";Class<?Class<?实现校验器@Override// 初始化代码,如果需要可以从注解中读取配置信息@Override// 这里编写具体的校验逻辑// 或者返回false,取决于你希望null值是否通过校验// 例如,检查value是否为特定的字符串在实体或DTO中使用自定义注解@MyConstraint(message = "用户名不符合预期")// 其他字段和方法。
2025-07-11 07:57:15
864
原创 Java并发测试工具
本文介绍了Java并发测试的主要工具和方法。单元测试方面,TestNG、JUnit5和ConcurrentUnit支持通过注解配置并发线程数,验证线程安全;负载测试工具如JMeter、Gatling和Locust可用于模拟高并发场景;性能基准测试推荐JMH。核心测试方法包括安全性验证、活跃性检测和性能指标测试。最佳实践强调线程安全设计、边界条件覆盖和工具链集成。最后给出问题类型与工具的对应建议:数据竞争用TestNG/JMH,死锁用jstack,性能瓶颈用JMeter/Gatling,高并发压测推荐Gatl
2025-07-11 07:05:23
670
原创 Jenkins Pipeline(二)
Jenkins Pipeline中的变量使用与POM文件读取技巧 摘要:Jenkins Pipeline提供了多种变量定义方式:1)脚本变量通过Groovy脚本定义(如def myVar);2)全局变量通过env对象访问系统变量(如BUILD_NUMBER);3)环境变量可在系统配置或pipeline中设置(environment指令)。对于Maven项目,可通过Pipeline Maven Integration插件读取pom.xml,使用readMavenPom方法获取项目信息(版本、依赖等)。这些功能
2025-07-05 14:53:33
182
原创 访问远程的Docker节点
摘要:访问远程Docker主机主要有两种方式:一是通过SSH登录远程服务器执行Docker命令;二是配置Docker守护进程允许远程连接(推荐)。后者的关键步骤包括:修改daemon.json文件或服务配置添加TCP监听端口(默认2375)、重启Docker服务、配置防火墙放行端口。连接时可使用Docker CLI(设置DOCKER_HOST环境变量或上下文)、Docker API、Docker-compose或SSH隧道等方式。该方法避免了文件上传,可直接从本地部署服务到远程主机。
2025-06-24 23:42:57
467
原创 docker搭建私有Nexus3
Nexus3私服部署与使用指南 摘要:本文介绍了Nexus3私服的五大优势,包括节省带宽、加速构建、提升稳定性等。详细说明了通过Docker(包括docker run和docker-compose两种方式)部署Nexus3的步骤,以及初次登录配置流程。重点讲解了Maven私仓的配置方法,包括修改settings.xml文件设置仓库地址、认证信息,以及在项目pom.xml中添加distributionManagement配置。同时还说明了不同类型仓库(Proxy、Hosted、Group)的作用及配置注意事项
2025-06-24 15:54:20
724
原创 lombok 在 jdk 23 版本下javac无法编译问题
maven-compiler-plugin 指定注解处理器路径时,没有确定 lombok 版本号,导致编译报错。检查了IDEA中lombok的插件和pom依赖引入都是没问题的。最后才发现导致的问题。
2025-06-12 15:57:38
222
原创 服务间远程调用
Dubbon和GPRC性能更好,OpenFegin性能差一点OpenFegin和GRPC支持跨语言。OpenFegin使用JSON序列化传输,可读性更高。
2025-06-06 23:33:02
946
原创 Kafka与RabbitMQ的核心区别
若需处理高吞吐量的流数据且可接受较高延迟,选择Kafka;若强调实时性、事务性和复杂路由需求,RabbitMQ更合适。
2025-06-06 22:51:04
379
原创 集群与分布式与微服务
选择分布式架构:适合技术栈统一、运维能力有限的团队,应对中等复杂度业务。选择微服务架构:适合追求极致弹性、技术自由度高且具备成熟DevOps能力的团队。核心差异:微服务是分布式架构的特例,但更强调自治性、细粒度拆分和云原生适配。
2025-06-06 22:40:37
779
原创 Jenkins Pipeline(一)
本文介绍了Jenkins Pipeline的基本概念和使用方法。Pipeline支持两种语法:声明式(结构化易读)和脚本式(灵活性强)。创建方式包括BlueOcean图形界面、Classic UI手动输入和SCM源码管理。文章详细对比了两种语法的特点和适用场景:声明式适合标准化流程,脚本式适合复杂逻辑。还提供了多环境部署、并行测试等典型用例,并分析了各自的优缺点。最后指出声明式适合常规CI/CD流程,而脚本式更适合需要高级Groovy特性的复杂场景。
2025-03-14 18:42:14
156
原创 Maven指定JDK路径
在使用 Maven 管理 Java 项目时,有时需要指定使用特定的 JDK 版本。这通常是因为项目需要与特定版本的 JDK 兼容,或者在不同的开发环境中需要确保使用正确的 JDK 版本。通常来说在IDEA工具中设置了正确的JDK版本,使用IDEA编译也不会有任何异常,但是使用mvn命令编译时则会出现异常。
2025-03-10 11:51:40
362
原创 Spring Security + OAuth2.0
协议为用户资源的授权提供了一个安全的、开放而又简易的标准(开放授权标准)。它允许用户授权第三方应用访问他们存储在另外的服务提供者上的信息,而不需要将用户名和密码提供给第三方应用或分享他们数据的所有内容。
2025-03-03 23:09:02
1766
4
原创 Spring Security+JWT 动态鉴权(6)
Component@Slf4j@Autowired@Override@Override> clazz) {@Overridelog.info("{} 对应的角色。//如果通过url关联权限为空,统一按没权限处理return 0;throw new AccessDeniedException("权限不足,无法访问");return 0;// 获取用户拥有的权限信息// 这里判断用户拥有的角色和该url需要的角色是否有匹配break;
2025-02-22 22:57:00
399
原创 Spring Security+JWT (5)
JWT字符串,字符之间通过"."分隔符分为三个子串。 每一个子串表示了一个功能块,总共有以下三个部分:JWT 头、有效载荷和签名。头部:JWT 头部分是一个描述 JWT 元数据的 JSON 对象,主要设置一些规范信息,签名部分的编码格式就在头部中声明。载荷:token中存放有效信息的部分,是 JWT 的主体内容部分,是一个 JSON 对象,包含需要传递的数据。比如用户名,用户角色,过期时间等,但是不要放密码,会泄露!1. 基本流程 认证:通过自定义一个用户名和密码登录的过滤器JwtT
2025-02-21 23:12:11
652
原创 SpringBoot中@Import和@ImportResource和@PropertySource
PropertySource是引入自定义配置文件(yml或properties),用于spring boot 配置文件(yml或properties)与实体属性映射。@ImportResource是引入spring配置文件.xml,它导入的是使用xml配置文件注入的对象。
2024-12-04 23:33:03
436
原创 Eureka和Zookeeper
特性ZooKeeperEureka主要功能分布式协调服务(锁、配置、同步等)服务发现和注册数据一致性强一致性(CP)弱一致性(AP)使用场景分布式系统的协调、配置管理、锁服务,它为 Hadoop、Hbase、Kafka 等知名分布式系统提供支持。云原生微服务架构中的服务发现。主要用于服务发现,它是 Spring Cloud 体系中的核心组件之一,与 Spring Boot 微服务应用框架紧密集成,提供服务注册与发现的功能。高可用性多副本数据复制多实例同步,自我保护机制。
2024-10-28 22:33:46
525
原创 Linux 命令集合
linux系统,主要分Debian系和RedHat系,还有其它自由的发布版本。1、Debian系主要有Debian,Ubuntu,Mint等及其衍生版本;2、RedHat系主要有RedHat,Fedora,CentOs等,3、其它有Slackware,Gentoo,Arch linux,LFS,SUSE等。4、如果开发用,推荐redhat系,业内公司的服务器多用centos,考虑到平时使用,那么就选择fedora,可以选择最新的发行版。
2024-08-24 18:04:03
997
原创 JAVA 异步编程(线程安全)二
多线程以及多进程改善了系统资源的利用率并提高了系统 的处理能力。然而,并发执行也带来了新的问题——死锁。所谓死锁是指多个线程因竞争资源而造成的一种僵局(互相等待),若无外力作用,这些进程都将无法向前推进。死锁是指两个或两个以上的线程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。
2024-07-19 22:33:09
1294
原创 JAVA 异步编程(异步,线程,线程池)一
虽然Thread可以创建线程,但是线程的创建销毁不能很好的控制,就会导致资源耗尽的风险,所以线程资源尽量通过线程池提供,不在应用中自行显示的创建线程,一方面是线程的创建更加规范,可以合理控制开辟线程的数量;另一方面线程的细节管理交给线程池处理,优化了资源的开销。
2024-07-16 22:32:15
3285
原创 Linux 磁盘空间清理
分区查看: 输入 fdisk -l 查看系统所有的磁盘和磁盘分区情况输入 df -TH 查看,哪个分区挂载在根目录下1. 输入 fdisk /dev/sda命令说明:#m 获取帮助#n 添加新分区#d 删除分区#p 打印分区表#t 更改分区类型# w 将分区表写入磁盘并保存2. 删除 /dev/sda2,3.重新建立该分区4.输入 w 保存,退出5输入 partprobe /dev/sda,通知系统内核分区表的变化6.输入 resize2fs /dev/sda1,对文件系统进行扩容参考:VMw
2024-06-25 21:38:49
856
原创 docker 容器设置中文环境
默认情况下: 如果没有zh_CN.utf8就安装。方式2:1.3 写入 bash.bashrc 文件1.4 写入 profile 文件1.5 重启容器2. dockerfile中设置
2024-06-24 01:03:25
7132
原创 认证和授权详解
:用来验证某个用户是否具有访问系统的权限。如果认证通过,该用户就可以访问系统,从而创建、修改、删除、查询平台支持的资源。):用来验证某个用户是否具有访问某个资源的权限。如果授权通过,该用户就能对资源做 CRUD 等操作。
2024-06-19 23:01:16
572
原创 SpringCloud Netflix和SpringCloud Alibaba核心组件
组件注册中心Eureka 1.xEureka 2.x(停止维护)配置中心熔断器服务调用Feign客户端负载均衡服务网关Zuul(停止维护)Gateway消息队列链路追踪分布式事务。
2024-06-19 22:44:04
1487
2
原创 Python环境搭建
在原来的site-packages下添加一个mypath.pth文件,文件名没有要求,只要保证文件后缀是.pth就行,并且增加我们自定义配置的site-packages的路径。index-url是设置第三方库的镜像源,设置镜像是为了更快下载,这里设置为阿里云镜像,当然也可以不设置或使用其他镜像。target是第三方库的目标安装路径,这个必须自己设置否则通过pip安装的第三方库依然安装在默认路径下。查看site.py存放路径,site.py一般存放在Lib目录,并且修改site.py的文件。
2024-05-30 23:22:28
460
原创 JS实现远程请求
XMLHttpRequest 用于在后台与服务器交换数据。支持的数据类型:所有类型的数据资源,并不局限于 XML。XMLHttpRequest 支持的协议:HTTP,file,FTP。
2024-05-18 16:56:02
416
原创 Java文件写入的方式
Java 中的“流”是一种抽象的概念,也是一种比喻,就好比水流一样,水流是从一端流向另一端的,而在 Java 中的“水流”就是数据,数据会从一端“流向”另一端。根据流的方向性,我们可以将流分为输入流和输出流,当程序需要从数据源中读入数据的时候就会开启一个输入流,相反,写出数据到某个数据源目的地的时候也会开启一个输出流,数据源可以是文件、内存或者网络等。
2024-05-17 23:21:08
543
原创 SpringBoot全局设置请求路径增加前缀
1.增加自定义注解ApiRestController2. 替换@RestController到注解@ApiRestController3. 配置WebMvcConfigurer@Component@Overrideconfigurer。
2024-05-17 22:56:18
3429
原创 OpenApi 接口文档
Bean.name("许可协议").description("csdn博客")@Bean.build();秒懂SpringBoot之如何集成SpringDoc(全网目前最新最系统最全面的springdoc教程) - 知乎。
2024-05-17 21:20:36
1197
原创 正向代理与反向代理
正向代理是客户端的代理,服务器不知道真正的客户端是谁;反向代理是服务器的代理,客户端不知道真正的服务器是谁正向代理一般是客户端架设的;反向代理一般是服务器架设的正向代理主要是用来解决访问限制问题;反向代理则是提供负载均衡、安全防护等作用。二者都能提高访问速度。百度安全验证百度安全验证。
2024-04-22 23:07:50
967
原创 Python基础
1、顶层的包(类似文件夹)。2、各个模块(Python file)。3、类(class 定义类)。4、变量和方法(函数)。其中,方法中也可以定义变量(方法中的变量)
2024-04-02 22:42:53
2427
原创 正则表达式
匹配除"\r\n"之外的任何单个字符。若要匹配包括"\r\n"在内的任意字符,请使用诸如"[\s\S]"之类的模式。[]字符集。例如,"[abc]"匹配"plain"中的"a"。[^]反向字符集。匹配未包含的任何字符。例如,"[^abc]"匹配"plain"中"p","l","i","n"。[-]字符范围。匹配指定范围内的任何字符。例如,"[a-z]"匹配"a"到"z"范围内的任何小写字母。[^a-z反向范围字符。匹配不在指定的范围内的任何字符。
2024-04-02 22:15:05
1062
原创 Linux 反引号、单引号以及双引号的区别
单引号中所有的字符包括特殊字符($,'',`和\)都将解释成字符本身而成为普通字符。它不会解析任何变量,元字符,通配符,转义符,。
2024-03-28 22:29:39
1173
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人