自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(53)
  • 收藏
  • 关注

原创 java 切面日志打印出参入参

切面日志对controller下所有的方法生效。

2024-08-29 19:45:29 179

原创 比较好用的枚举类

Java枚举类定义;怎么优雅的定义枚举类;枚举类如何定义;多个枚举类如何定义

2024-07-23 16:11:34 221

原创 网关过滤器实现接口签名检验

往往项目中的可能被别有用心者对其,或者为此我们行业内使用比较多的策略是。签名校验的实现可以用的形式实现,也可以使用过实现,此篇文章博主将会介绍如何。

2024-05-15 11:02:18 453

原创 接口安全设计之防篡改和防重放

之所以想跟大家分享怎么做好基础的接口安全,一方面是工作需要,之前这部分的工作是我在负责,所以正好有这部分的经验;二是我之前也接触过很多做后端的同学,对于这一块大部分涉及不深或不太了解,也不知道怎么样做才算相对安全。所以把我的想法写出来,供大家参考和讨论,共同学习和进步。当然了,我分享的也只是我的个人经验,自然有很多的不足之处,也并不是说我后续阐述的一些观点和实现就一定是安全的,大家要加入自己的判断,并且混入一些定制化的东西。

2024-05-13 14:39:49 1176 1

原创 Sentinel 控制台学习

Sentinel 系统自适应限流从整体维度对应用入口流量进行控制,结合应用的 Load、CPU 使用率、总体平均 RT、入口 QPS 和并发线程数等几个维度的监控指标,通过自适应的流控策略,让系统的入口流量和系统的负载达到一个平衡,让系统尽可能跑在最大吞吐量的同时保证系统整体的稳定性。从上图可以看到,快速失败方式下,会出现5个接口调用成功,5个接口调用失败,并且会有一个5秒钟的时间间隔(自己设置的时间间隔),排队等待就是利用这个时间间隔,处理处于等待中的请求,从而实现流控。

2024-04-30 10:30:59 1696

原创 SpringCloud Sentinel集成到微服务项目中(保姆级教程)

随着微服务的流行,服务和服务之间的稳定性变得越来越重要。Sentinel以流量为切入点,从流量控制熔断降级系统负载保护等多个维度保护服务的稳定性。Sentinel丰富的应用场景: Sentinel 承接了阿里巴巴近 10 年的双十一大促流量的核心场景,例如秒杀(即突发流量控制在系统容量可以承受的范围)、消息削峰填谷、实时熔断下游不可用应用等。完备的实时监控: Sentinel 同时提供实时的监控功能。您可以在控制台中看到接入应用的单台机器秒级数据,甚至 500 台以下规模的集群的汇总运行情况。

2024-04-29 16:45:39 1158

原创 Git的SSH密钥配置

SSH密钥生成结束后,你可以在SSH目录下看到私钥id_rsa和公钥id_rsa.pub这两个文件,不要把私钥文件id_rsa的信息透露给任何人。因此,如果你想要使用ssh url克隆的话,你必须是这个项目的拥有者(项目成员),否则你是无法添加ssh key的。,或者类似但秘钥类型不同的文件,如果存在,说明已经有ssh Key. 没有的话,创建新的ssh key。的,如果配置ssh key的时候设置了密码,则需要输入密码的,否则直接是不需要输入密码的。:可以随意克隆github上的项目,不管是谁的项目。

2024-04-19 14:13:34 897

原创 为什么微服务一定要有网关?

为什么一定要用网关,不用网关不行吗?服务网关 = 路由转发 + 过滤器1、路由转发:接收一切外界请求,转发到后端的微服务上去。2、过滤器:在服务网关中可以完成一系列的横切功能,例如权限校验、限流以及监控等,这些都可以通过过滤器完成(其实路由转发也是通过过滤器实现的)

2024-04-17 13:45:31 833

原创 自定义注解实现对实体类的字段进行校验

定义一个**@Odd注解,通过@interface**声明一个注解// 校验对象里的age域的值是奇数,这时候就可以创建以下注解Class

2024-04-03 16:20:48 389

原创 synchronized是重量级锁???

synchronized锁经过多次迭代优化,已经不像以前那么重了,在JDK1.8的ConcurrentHashMap源码中已经大量使用synchronized做同步控制,大家在日常开发中可以放心使用了。

2024-03-11 14:06:05 826

原创 常见的持久层框架包括

灵活性和控制权:Hibernate和MyBatis相对于Spring Data JPA和Spring JDBC提供了更高的灵活性和控制权。它使用JPA(Java持久化API)标准来进行对象和关系数据库的映射,通过自动生成常见的数据库访问方法,减少开发人员的重复工作。Hibernate和MyBatis则需要更多的学习和配置,但在面对复杂的数据模型和查询时,提供了更多的功能和灵活性。综上所述,选择持久层框架需要综合考虑项目需求、团队经验、性能和扩展性等因素,并权衡不同框架的特点和优劣势,选择最适合的框架。

2024-01-26 18:03:25 1225

原创 解释 Git 的基本概念和使用方式。

远程仓库(Remote Repository):远程仓库是位于网络上的仓库,用于多人协作开发和备份代码。Git可以通过克隆(Clone)远程仓库到本地,并通过推送(Push)和拉取(Pull)更新远程仓库的代码。提交(Commit):提交是Git中的一个操作,表示将当前文件的改动保存到版本历史中。总之,Git是一个强大而灵活的版本控制工具,可以帮助开发者更好地管理项目的代码,并实现多人协作开发。命令查看当前仓库的状态,包括修改的文件、暂存区的文件等信息。命令将一个分支的改动合并到另一个分支中。

2024-01-19 14:12:42 758

原创 java策略模式代码案例

*** 结算抽象类/*** 此方法用来判断具体执行哪一个实现类* @param operation 操作枚举* @return/*** 结算核心算法* @param BigDecimal amount 金额* @param string currencyType 币种类型/*** 人名币结算实现类*/@Slf4j@Service@Override@Override//todo 具体自己的业务逻辑。

2024-01-19 13:25:24 676

原创 6年Java开发经验的工程师需要掌握的技能

总之,6年Java开发经验的工程师需要具备全面的技能和知识,能够独立完成项目并解决开发过程中的各种问题。

2024-01-16 16:54:39 462

原创 简单介绍Docker

Docker 是一种应用容器化技术,它通过将应用程序及其依赖项打包到容器中,在不同的操作系统和平台上实现了可移植性和跨平台性。容器是基于镜像运行的实例,即应用程序在运行时的环境。多租户能力:Docker 可以为多租户应用程序提供独立的容器运行环境,使得多个应用程序可以在同一个主机上运行而不互相干扰。快速部署:由于 Docker 是轻量级的容器技术,它可以快速地部署和启动应用程序,使得应用程序的交付速度更快。跨平台性:Docker 可以在不同的操作系统和平台上运行,使得应用程序在不同的环境中具有可移植性。

2023-12-04 09:59:05 547

原创 程序员养生指南:在bug和产品间寻找平衡

作为程序员,我们每天都要面对无数的bug和让人崩溃的产品需求。但是,我们也要照顾好自己,才能在代码的世界中保持健康。

2023-12-01 15:35:43 529

原创 优秀编程习惯一: Git提交如何写注释

feat - A new feature,fix - A bug fix,代码提交注释怎么写,代码提交注释,IDEA提交代码

2023-12-01 11:13:03 640

原创 stream流操作List对象,指定属性,取差集、交集

【代码】stream流操作List对象,指定属性,取差集、交集。

2023-11-30 18:27:03 1455

原创 数据库语言分类 DQL、DML、DDL、DCL区别

我们在创建表的时候用到的一些sql,比如说:CREATE、ALTER、DROP等。主要是用在定义或改变表的结构,数据类型,表之间的链接和约束等初始化工作上。

2023-11-02 11:15:26 75

转载 【ES知识】ES基础查询语法一览

Elasticsearch是一个分布式的RESTful 风格的搜索和数据分析引擎,它使用方便,查询速度快,因此也被越来越多的开发人员使用。本篇文章主要带大家过一下ES的基础查询语法那么到这里ES的基础语法就给大家介绍完了,如果还想了解更多可以去阅读官方的相关文档。看了这一篇,你对于ES的一些常用操作基本就可以满足了。

2023-10-17 10:28:02 1580

原创 java项目部分文件或文件夹功能及作用的简单介绍

idea文件夹是存储IntelliJ IDEA项目的配置信息,主要内容有IntelliJ IDEA项目本身的一些编译配置、文件编码信息、jar包的数据源和相关的插件配置信息。一般用git做版本控制的时候会把.idea文件夹排除,因为这个文件下保存的都是个人本地Idea编译器的配置。IDEA中的.iml文件是项目标识文件,缺少了这个文件,IDEA就无法识别项目。并且这些文件不同的设备上的内容也会有差异。存放web应用需要的各种JAR文件,放置仅在这个应用中要求使用的jar文件,如数据库驱动jar文件。

2023-10-11 09:57:53 572

原创 java并发工具包

juc java并发工具包

2023-10-06 10:27:39 49

原创 java对象实例化时的顺序(静态成员变量、静态代码块、成员变量、方法块加载、构造函数加载)

3、需要的类加载完成后,开始创建对象,首先会加载非静态的成员,主要包括非静态成员变量的初始化,非静态语句块的执行,在加载时按代码的先后顺序进行。2、在类被加载的同时会将静态成员进行加载,主要包括静态成员变量的初始化,静态语句块的执行,在加载时按代码的先后顺序进行。4、最后执行构造器,构造器执行完毕,对象生成。1,父类的静态成员变量和静态代码块加载。2,子类的静态成员变量和静态代码块加载。3,父类成员变量和方法块加载。5,子类成员变量和方法块加载。4,父类的构造函数加载。6,子类的构造函数加载。

2023-09-26 14:58:33 652

原创 什么是Maven快照(SNAPSHOT)

每次构建时,会优先去远程仓库中查看是否有最新的"abc-1.0-SNAPSHOT.jar",若是有则下载下来使用。即便本地仓库中已经有了"abc-1.0-SNAPSHOT.jar",它也会尝试去远程仓库中查看同名的jar是不是最新的。假设项目中现在依赖"abc-1.0",在第一次构建的时候会把该库从远程仓库中下载到本地仓库缓存,之后再次构建都不会去访问远程仓库了。带有"-SNAPSHOT"表示使用的依赖为快照版本,不带"-SNAPSHOT"为正式版本。

2023-08-10 18:14:34 1473

原创 java中socket编程什么场景会使用

同时,Java中提供了丰富的网络编程API,例如Socket、ServerSocket、DatagramSocket等类,可以满足不同的网络编程需求。另外,Java中的网络编程API支持多线程编程,可以实现高并发的网络应用程序。因此,Java中的Socket编程在网络编程中具有广泛的应用场景。Java中的Socket编程主要应用于网络编程,可以用于开发各种网络应用程序,例如基于TCP协议的客户端/服务器应用、基于UDP协议的数据报传输应用、基于HTTP协议的Web应用等。

2023-08-05 10:37:42 229

原创 为什么要使用分布式锁

分布式锁,为什么要使用分布式锁,java锁机制,两个锁在不同的JVM里面

2023-08-02 14:19:43 85

原创 爽完多线程开发

多线程大家肯定都不陌生,理论滚瓜烂熟,八股天花乱坠,但是大家有多少在代码中实践过呢?很多人在实际开发中可能就用用@Async,new Thread()。线程池也很少有人会自己去建,默认的随便用用。在工作中大家对于多线程开发,大多是用在异步,比如发消息,但是对于提效这块最重要的优势却很少有人涉及。因此本篇文章会结合我自己的工作场景带大家去发掘项目中的多线程场景,让你的代码快如闪电。Cpu为了均衡与内存的速度差异,增加了缓存–导致了可见性问题操作系统增加了进程和线程,分时复用CPU,进而均衡CPU与IO设备的速

2023-07-03 16:20:04 86

原创 linux日志查看/项目日志查看/监控日志

【代码】linux日志查看/项目日志查看/监控日志。

2023-05-26 18:41:53 131

原创 Git版本代码管理

把自己开发分支 feature-XXX 提交和Push后切换到release分支,然后通过idea的git分支管理merge自己分支代码到release,有冲突解决冲突:如图。把自己开发分支 feature-XXX 提交和Push后切换到test分支,然后通过idea的git分支管理merge自己分支代码到test,有冲突解决冲突:如图。把自己开发分支 feature-XXX 提交和Push后切换到dev分支,然后通过idea的git分支管理merge自己分支代码到dev,有冲突解决冲突:如图。

2023-05-16 14:18:36 77

原创 maven操作中package、install、deploy 的区别

maven 最常用的命令: mvn clean package(install或者deploy) -Dmaven.test.skip。3、deploy 会把代码打成 jar 包,放到指定位置, 并同步到本地仓库, 并同步到远程仓库。2、install 会把代码打成 jar 包,放到指定位置, 并同步 到本地仓库;1、package 只会把代码打成 jar 包,放到指定位置, 不同步 到本地仓库。

2023-05-10 11:10:46 646

原创 hutool工具版本升级后部分API无法使用

如果升级到高版本,使用的某些api可能会没有或者其它情况出现;5.3.8有问题,升级到5.8.12后解决。初始化集合的地方有些API没有了.hutool版本升级后代码中使用。使用**【hutool】调用外部接口,使用了【发现是我们目标使用的。

2023-04-27 15:26:33 1389 2

原创 分布式和微服务的区别?

分布式系统和微服务架构都是在解决系统扩展性、灵活性和可维护性等问题上的一种架构风格,但它们在设计和实现上还是有一些区别的。分布式系统和微服务架构都是在解决大型系统的扩展性和可维护性等问题上的一种解决方案,但微服务架构更加强调服务的自治性和独立性,更适用于大型复杂系统的开发和维护。

2023-03-24 13:37:29 1403

原创 线程池设置线程数计算公式

线程数 = ((线程等待时间+线程CPU时间)/线程CPU时间 )* CPU数目。线程数 = CPU核数+1 (现代CPU支持超线程)

2023-03-19 22:01:41 589

原创 CPU飙升排查及常见原因

top排查cpu飙升,cpu飙升常见原因

2023-03-19 21:46:32 2262

原创 Linux 安装Docker + jenkins(如何快速安装docker+jenkins)

快速部署jenkins,快速安装docker+jenkins,docker,jenkins,docker+jenkins

2023-03-19 21:02:00 141

原创 如何三分钟搭建FinderWeb日志服务器(傻瓜式操作)

FinderWeb是一个高性能的Web版分布式文件管理工具,支持文件在线管理,日志文件在线查看和搜索.监控组件支持远程监控其他主机的系统状态和远程JVM的状态。

2023-03-19 20:46:26 1173 2

原创 微服务:OpenFeign进行服务通讯时携带Token数据

以上就是OpenFegin在服务之间通讯中,携带token的实现方法了。其实挺简单的,就两步。

2023-03-14 18:31:44 1585

原创 Spring Cloud 核心组件

各个服务启动时,Eureka Client 都会将服务注册到 Eureka Server,并且 Eureka Client 还可以反过来从 Eureka Server 拉取注册表,从而知道其他服务在哪里。:发起请求是通过 Hystrix 的线程池来走的,不同的服务走不同的线程池,实现了不同服务调用的隔离,避免了服务雪崩的问题。:基于 Feign 的动态代理机制,根据注解和选择的机器,拼接请求 URL 地址,发起请求。:服务间发起请求的时候,基于 Ribbon 做负载均衡,从一个服务的多台机器中选择一台。

2023-01-12 11:44:20 67

原创 聚簇索引和非聚簇索引和覆盖索引

将索引和表数据放到同一个节点中,索引结构的叶子节点存放数据,找到了索引,即找到了数据。一个表只能有一个聚簇索引。:索引存储和数据存储分离,索引结构的叶子节点指向数据的位置。通过索引找到位置,再通过位置找到数据,这个过程叫做。:覆盖索引是select的数据列只用从索引中就能够取得,不必读取数据行,换句话说查询列要被所建的索引覆盖。一个表可以有多个非聚簇索引。

2023-01-10 12:17:34 395

原创 java多线程介绍

其实了解多线程之前我们要大致理解下什么是进程?通过任务管理器我们就看到了进程的存在。而通过观察,我们发现只有运行的程序才会出现进程。进程:就是正在运行的程序。进程是系统进行资源分配和调用的独立单位。每一个进程都有它自己的内存空间和系统资源。单进程的计算机只能做一件事情,而我们现在的计算机都可以做多件事情。举例:一边玩游戏(游戏进程),一边听音乐(音乐进程)。也就是说现在的计算机都是支持多进程的,可以在一个时间段内执行多个任务。并且呢,可以提高CPU的使用率。那么问题来了。

2022-09-28 10:05:20 77

JAVA后端技术文档模板

JAVA后端技术文档模板 1:需求背景 2:数据模型 3:业务流程图 4:影响范围 5:依赖项目 6:接口详情设计

2023-10-06

java后端项目模板,导入即用

spring boot + maven + jwt + mybatis plus搭建的项目模板

2023-08-02

空空如也

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

TA关注的人

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