- 博客(167)
- 资源 (6)
- 收藏
- 关注
原创 SpringBoot 服务器配置
摘要:SpringBoot的默认HTTP请求头最大长度为8KB,可通过server.max-http-request-header-size配置修改。连接数配置因服务器而异:Tomcat默认最大连接数8192,工作线程200,等待队列100;Jetty线程数默认200,连接数无上限;Undertow默认I/O线程为CPU核心数×2,工作线程200。配置参数包括server.tomcat.max-threads、server.jetty.threads.max和server.undertow.threads.
2025-08-02 23:01:09
679
原创 java 使用jdbc/ojdbc连接oracle的三种方式
本文介绍了三种连接Oracle数据库的方法:1)使用service_name,JDBC URL格式为"jdbc:oracle:thin:@//host:port/servicename"或通过TNSNAMES.ORA文件;2)使用SID连接(不推荐),格式为"jdbc:oracle:thin:@host:port:SID";3)使用tnsname连接,格式为"jdbc:oracle:thin:@TNSNAME"。Oracle官方推荐优先使用serv
2025-07-17 18:21:36
98
原创 SpringBoot异常处理的5种方式
【摘要】本文介绍了Spring中四种异常处理方式:1)使用@ExceptionHandler注解在Controller中处理特定异常;2)通过@RestControllerAdvice实现全局异常拦截;3)配置SimpleMappingExceptionResolver进行异常映射;4)自定义HandlerExceptionResolver实现精细化异常处理。其中全局异常处理(方式2)和自定义Resolver(方式4)更为灵活,可根据异常类型返回不同响应(ResponseEntity/ModelAndVie
2025-07-11 09:29:51
132
原创 SpringBoot 参数校验
定义校验注解String message() default "自定义校验信息";Class<?Class<?实现校验器@Override// 初始化代码,如果需要可以从注解中读取配置信息@Override// 这里编写具体的校验逻辑// 或者返回false,取决于你希望null值是否通过校验// 例如,检查value是否为特定的字符串在实体或DTO中使用自定义注解@MyConstraint(message = "用户名不符合预期")// 其他字段和方法。
2025-07-11 07:57:15
889
原创 Java并发测试工具
本文介绍了Java并发测试的主要工具和方法。单元测试方面,TestNG、JUnit5和ConcurrentUnit支持通过注解配置并发线程数,验证线程安全;负载测试工具如JMeter、Gatling和Locust可用于模拟高并发场景;性能基准测试推荐JMH。核心测试方法包括安全性验证、活跃性检测和性能指标测试。最佳实践强调线程安全设计、边界条件覆盖和工具链集成。最后给出问题类型与工具的对应建议:数据竞争用TestNG/JMH,死锁用jstack,性能瓶颈用JMeter/Gatling,高并发压测推荐Gatl
2025-07-11 07:05:23
726
原创 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
192
原创 访问远程的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
483
原创 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
736
原创 lombok 在 jdk 23 版本下javac无法编译问题
maven-compiler-plugin 指定注解处理器路径时,没有确定 lombok 版本号,导致编译报错。检查了IDEA中lombok的插件和pom依赖引入都是没问题的。最后才发现导致的问题。
2025-06-12 15:57:38
239
原创 服务间远程调用
Dubbon和GPRC性能更好,OpenFegin性能差一点OpenFegin和GRPC支持跨语言。OpenFegin使用JSON序列化传输,可读性更高。
2025-06-06 23:33:02
954
原创 Kafka与RabbitMQ的核心区别
若需处理高吞吐量的流数据且可接受较高延迟,选择Kafka;若强调实时性、事务性和复杂路由需求,RabbitMQ更合适。
2025-06-06 22:51:04
409
原创 集群与分布式与微服务
摘要: 集群和分布式在架构设计中有本质区别,集群指多服务器共同处理同一业务以提升吞吐量,分布式则是将业务拆分为子任务部署在不同节点以缩短执行时间。微服务是分布式架构的演进,强调细粒度业务拆分(如支付服务拆分为独立子服务)、轻量级通信(REST/gRPC)和独立数据存储(Database per Service),并通过容器化实现敏捷扩展。未来趋势包括混合架构(分布式强一致性与微服务弹性结合)、服务网格(如Istio)和无服务器化。选择依据取决于团队技术栈统一性、运维能力及业务复杂度需求。
2025-06-06 22:40:37
785
原创 Jenkins Pipeline(一)
本文介绍了Jenkins Pipeline的基本概念和使用方法。Pipeline支持两种语法:声明式(结构化易读)和脚本式(灵活性强)。创建方式包括BlueOcean图形界面、Classic UI手动输入和SCM源码管理。文章详细对比了两种语法的特点和适用场景:声明式适合标准化流程,脚本式适合复杂逻辑。还提供了多环境部署、并行测试等典型用例,并分析了各自的优缺点。最后指出声明式适合常规CI/CD流程,而脚本式更适合需要高级Groovy特性的复杂场景。
2025-03-14 18:42:14
165
原创 Maven指定JDK路径
在使用 Maven 管理 Java 项目时,有时需要指定使用特定的 JDK 版本。这通常是因为项目需要与特定版本的 JDK 兼容,或者在不同的开发环境中需要确保使用正确的 JDK 版本。通常来说在IDEA工具中设置了正确的JDK版本,使用IDEA编译也不会有任何异常,但是使用mvn命令编译时则会出现异常。
2025-03-10 11:51:40
383
原创 Spring Security + OAuth2.0
协议为用户资源的授权提供了一个安全的、开放而又简易的标准(开放授权标准)。它允许用户授权第三方应用访问他们存储在另外的服务提供者上的信息,而不需要将用户名和密码提供给第三方应用或分享他们数据的所有内容。
2025-03-03 23:09:02
1820
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
411
原创 Spring Security+JWT (5)
JWT字符串,字符之间通过"."分隔符分为三个子串。 每一个子串表示了一个功能块,总共有以下三个部分:JWT 头、有效载荷和签名。头部:JWT 头部分是一个描述 JWT 元数据的 JSON 对象,主要设置一些规范信息,签名部分的编码格式就在头部中声明。载荷:token中存放有效信息的部分,是 JWT 的主体内容部分,是一个 JSON 对象,包含需要传递的数据。比如用户名,用户角色,过期时间等,但是不要放密码,会泄露!1. 基本流程 认证:通过自定义一个用户名和密码登录的过滤器JwtT
2025-02-21 23:12:11
668
原创 SpringBoot中@Import和@ImportResource和@PropertySource
PropertySource是引入自定义配置文件(yml或properties),用于spring boot 配置文件(yml或properties)与实体属性映射。@ImportResource是引入spring配置文件.xml,它导入的是使用xml配置文件注入的对象。
2024-12-04 23:33:03
442
原创 Eureka和Zookeeper
特性ZooKeeperEureka主要功能分布式协调服务(锁、配置、同步等)服务发现和注册数据一致性强一致性(CP)弱一致性(AP)使用场景分布式系统的协调、配置管理、锁服务,它为 Hadoop、Hbase、Kafka 等知名分布式系统提供支持。云原生微服务架构中的服务发现。主要用于服务发现,它是 Spring Cloud 体系中的核心组件之一,与 Spring Boot 微服务应用框架紧密集成,提供服务注册与发现的功能。高可用性多副本数据复制多实例同步,自我保护机制。
2024-10-28 22:33:46
536
原创 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
1003
原创 JAVA 异步编程(线程安全)二
多线程以及多进程改善了系统资源的利用率并提高了系统 的处理能力。然而,并发执行也带来了新的问题——死锁。所谓死锁是指多个线程因竞争资源而造成的一种僵局(互相等待),若无外力作用,这些进程都将无法向前推进。死锁是指两个或两个以上的线程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。
2024-07-19 22:33:09
1313
原创 JAVA 异步编程(异步,线程,线程池)一
摘要:本文系统介绍了Java多线程编程的核心概念与实现方式。主要内容包括:1.线程与进程的区别,线程五种状态(新建、就绪、运行、阻塞、死亡);2.四种实现异步的方式:裸线程(Thread)、线程池(Executor)、ForkJoinPool和Spring的@Async注解;3.线程池的创建与使用,包括Executors工具类和ThreadPoolExecutor手动创建方式;4.获取子线程返回值的多种方法(阻塞和非阻塞),重点推荐CountDownLatch和ExecutorCompletionServi
2024-07-16 22:32:15
3349
原创 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
892
原创 docker 容器设置中文环境
默认情况下: 如果没有zh_CN.utf8就安装。方式2:1.3 写入 bash.bashrc 文件1.4 写入 profile 文件1.5 重启容器2. dockerfile中设置
2024-06-24 01:03:25
7266
原创 认证和授权详解
:用来验证某个用户是否具有访问系统的权限。如果认证通过,该用户就可以访问系统,从而创建、修改、删除、查询平台支持的资源。):用来验证某个用户是否具有访问某个资源的权限。如果授权通过,该用户就能对资源做 CRUD 等操作。
2024-06-19 23:01:16
589
原创 SpringCloud Netflix和SpringCloud Alibaba核心组件
组件注册中心Eureka 1.xEureka 2.x(停止维护)配置中心熔断器服务调用Feign客户端负载均衡服务网关Zuul(停止维护)Gateway消息队列链路追踪分布式事务。
2024-06-19 22:44:04
1504
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
469
原创 JS实现远程请求
XMLHttpRequest 用于在后台与服务器交换数据。支持的数据类型:所有类型的数据资源,并不局限于 XML。XMLHttpRequest 支持的协议:HTTP,file,FTP。
2024-05-18 16:56:02
420
原创 Java文件写入的方式
Java 中的“流”是一种抽象的概念,也是一种比喻,就好比水流一样,水流是从一端流向另一端的,而在 Java 中的“水流”就是数据,数据会从一端“流向”另一端。根据流的方向性,我们可以将流分为输入流和输出流,当程序需要从数据源中读入数据的时候就会开启一个输入流,相反,写出数据到某个数据源目的地的时候也会开启一个输出流,数据源可以是文件、内存或者网络等。
2024-05-17 23:21:08
551
原创 SpringBoot全局设置请求路径增加前缀
1.增加自定义注解ApiRestController2. 替换@RestController到注解@ApiRestController3. 配置WebMvcConfigurer@Component@Overrideconfigurer。
2024-05-17 22:56:18
3487
原创 OpenApi 接口文档
Bean.name("许可协议").description("csdn博客")@Bean.build();秒懂SpringBoot之如何集成SpringDoc(全网目前最新最系统最全面的springdoc教程) - 知乎。
2024-05-17 21:20:36
1209
原创 正向代理与反向代理
正向代理是客户端的代理,服务器不知道真正的客户端是谁;反向代理是服务器的代理,客户端不知道真正的服务器是谁正向代理一般是客户端架设的;反向代理一般是服务器架设的正向代理主要是用来解决访问限制问题;反向代理则是提供负载均衡、安全防护等作用。二者都能提高访问速度。百度安全验证百度安全验证。
2024-04-22 23:07:50
984
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人