自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Spring Boot项目如何配置跨域

跨域问题

2024-06-29 15:56:38 314 1

原创 SpringSecurity的执行原理

SpringSecurity的执行原理:当我们服务端接收到请求后,首先通过DelegatingFilterProxy代理对象交互,转发给springsecurity的执行链,由于他自带的执行链有16条,我们将不用的过滤器进行了排除,同时加入了我们自定义的过滤器,token全局过滤器,先判断token是否被篡改或过期,然后对token进行解析,将负载中的角色存储在SecurityContext上下文中,对加有@PreAuthorize注解的方法进行判断,如果我们上下文中的角色包含注解中的角色,则执行请求,否则

2024-06-27 13:48:01 338

原创 常见的IO流有哪些?

1、FileInputStream2、FileOutputStream3、FileReader4、FileWriter5、printStream6、printWriter7、ObjectInputStream8、ObjectOutputStream

2024-06-26 19:19:59 181

原创 静态变量和实例变量的区别:

的实例变量才会被分配空间,才能使用这个实例变量。静态变量不属于某个实例对。象,而是属于类,所以也称为类变量,只要程序加载了类的字节码,不用创建任何。实例对象,静态变量就会被分配空间,静态变量就可以被使用了。:静态变量前要加static关键字,而实例变量前则不加。:实例变量属于某个对象的属性,必须创建了实例对象,其中。

2024-06-26 17:53:09 226

原创 四层,七层协议

2024-06-26 15:13:54 124

原创 开启自定义线程池的步骤

1、根据自定义线程工程创建一个工厂实例。3、设置线程池的核心参数。

2024-06-26 14:50:12 451

原创 数据结构:几种基本的数据结构

树形结构中,元素之间存在一对多的关系,每个节点有零个或多个子节点。常见的树形结构有二叉树、平衡二叉树(如AVL树、红黑树)、B树等,用于实现高效的查找、插入和删除操作。:图是一种更为复杂的数据结构,其中的元素(节点)之间可以存在多对多的关系,通过边来连接。图可以是有向的也可以是无向的,广泛应用于表示网络、路径规划等问题。

2024-06-26 14:32:05 304 1

原创 MySQL常用的函数

8、week()/ year():返回时一年中的第几周 / 返回是哪一年。1、concat('a','b'):把传入的参数连成一个字符串。2、lower()/upper():转换为小写/转换为大写。7、now():当前日期和时间,年月日时分秒。5、substring():截取字符串的。4、trim():去掉开头和结尾的空格。6、rand():返回0-1的随机数。3、replace():替换字符串。

2024-06-25 22:04:25 118

原创 count(*) 和count(1)的区别

COUNT(字段) 多了一个步骤就是判断所查询的字段是否为 NULL,所以他的性能要比 COUNT(*) 慢。同时MySQL对COUNT(*) 进行了优化,所以COUNT(*) 的效率高一些。

2024-06-25 19:29:50 156

原创 重写equals为什么要重写hashCode???

综上所述,为了保证程序的正确性和性能,当你修改了对象的相等性判断逻辑(即重写了。,可能会导致一些难以调试的问题,特别是在处理大量对象和复杂数据结构时。,就是说equals相同的话hash值必须一致,如果。方法,以保持两者之间的一致性和集合框架的正确运行。:Java集合框架的很多实现都依赖于正确的。,可能会导致集合中出现重复的对象,或者在。这是基于Java集合框架的。这样的集合中,对象的唯一性是由。中,同一个键可能关联到多个值。方法后,通常建议你也应该重写。方法是相等的,那么它们的。比较,提高查找效率。

2024-06-25 19:24:07 233

原创 断言提供了哪些方法

Java中的断言机制主要用于开发和测试阶段,以确保代码符合预期的行为。,如果是,则抛出带有自定义消息的。,可以用于实现自定义的断言逻辑。关键字,Java标准库中的。

2024-06-25 19:20:21 222

原创 MySQL集群如何实现读写分离

在业务代码中使用ShardingDataSource来执行数据库操作,Sharding-JDBC会自动根据配置进行读写分离。:通过MasterSlaveRuleConfiguration定义了主从数据库的读写分离规则。:使用数据源和读写分离规则创建了ShardingDataSource。:定义了从数据库的负载均衡算法。:定义了主从数据库的连接池。

2024-06-25 19:14:54 247

原创 并行和并发的区别

并发:在单核cpu下,多个任务轮换执行(看起来像并行)并行:在多核cpu下,多个任务可以一起执行。

2024-06-25 17:59:47 132

原创 为什么序列化???

需要共享数据时,直接传递对象通常是不可行的,因为对象的引用无法在网络或进程边界上传输。因此,需要将对象的状态转化为一种可以传输的形式,这就是序列化的作用。

2024-06-25 17:49:35 281

原创 synchrpnized静态方法和非静态方法的区别

非静态方法:锁的是对象实例(对象锁)静态方法:锁的是类对象(类锁)

2024-06-25 17:40:17 97

原创 Java stream操作流常用的方式

8.匹配:使用anyMatch()、allMatch()、noneMatch()方法可以对集合中的元素进行匹配判断。10.转换:使用collect()方法可以将集合中的元素转换为另一个集合。2.映射:使用map()方法可以对集合中的每一个元素进行映射处理。6.聚合:使用reduce()方法可以对集合中的元素进行聚合计算。7.遍历:使用forEach()方法可以遍历集合中的每一个元素。3.排序:使用sorted()方法可以对集合中的元素进行排序。5.统计:使用count()方法可以对集合中的元素进行统计。

2024-06-25 17:37:52 201

原创 堆和栈的区别

栈 堆 是否共享 私有 共享 存储内容 基本数据类型和引用类型的地址 实例对象 声明周期 随着线程结束而消亡 随着jvm结束而消亡 垃圾回收 不需要垃圾回收 需要垃圾回收

2024-06-25 17:28:19 142

原创 封装的目的

1、单一职责2、解耦3、安全性4、复用性。

2024-06-25 17:21:54 147

原创 Redis为什么使用单线程?

3、工作线程单线程,io多线程,最大化cpu利用率。1、简化了并发控制,避免多线程死锁。2、保证了原子性和数据的一致性。

2024-06-25 17:11:34 107

原创 Docker什么命令可以不进行端口映射,而使用本地端口

【代码】Docker什么命令可以不进行端口映射,而使用本地端口。

2024-06-25 17:02:29 158

原创 全链路跟踪的过程???

前端埋点,前端生成traceId放在请求头中传递给后端,请求后端接口,在后端过滤器中判断是否有传递traceId,如果没有就生成一个,放在MDC中,使用时直接打印就可以了,由于微服务会通过openfegin远程调用其它服务,所以需要增强openfegin原生的拦截器,将token和traceId放入请求中传递给下游服务,已记录用户调用行为,便于后续分析。

2024-06-24 22:11:17 302

原创 openfeign的原理 ????

4、open Feign是基于aop的原理,在远程调用时,会扫描带有@FeignClient注解的接口,根据接口上的服务名去nacos服务中心获取对应服务的ip和端口,与方法上的url进行拼接成http请求,调用远程接口就像调用本地方法一样简单,再由动态代理生成对应的代理对象去执行所调用服务(通过http进行请求与响应),拿到响应数据(统一封装过的)后会将响应体中的数据通过我们所自己设置的openfeign的解码器反序列化成Java对象返回给本地服务。2、支持spring mvc 注解。

2024-06-24 21:56:59 359

原创 SpringBoot内置日志框架是什么?

文件中添加或修改配置项来定制日志行为,比如改变日志级别、日志文件的路径和名称等。Spring Boot 默认的日志级别是 INFO,并且它会生成一个名为。(Simple Logging Facade for Java)作为日志。的日志文件,除非你修改了默认的配置。Spring Boot 内置的日志系统是由。

2024-06-24 21:48:06 308

原创 脱敏的原理:

脱敏的原理:自定义了一个注解@Desensitization使用自定义的脱数序列化工具类,实现接口ContextualSerializer重写createContextual方法,方法中扫描属性上是否有自定义的注解,有则创建定义的序列化类的实例并且返回,根据自定义的脱敏规则实现数据脱敏。

2024-06-24 21:32:44 119

原创 装箱和拆箱?int和Integer的区别?

3、int转Integer叫做装箱,Integer转int叫做拆箱,但是装箱和拆箱不是一定的,在-128到127之间的数据就不需要进行装箱和拆箱,因为这部分数据会存储在JVM的堆内存中。2、Intege内部包含了很多方法,便于我们开发。1、int是基本类型,Integer是包装类。

2024-06-24 21:20:52 112

原创 数据库UNION和UNION ALL的区别?

UNION是自动去重,性能低。UNION ALL不去重,性能高。

2024-06-24 21:16:01 391

原创 Java代码如何优化的?

7、库存以前是直接操作数据库--->lua。8、日志----->ELK。6、代码reviewe。3、公共类/方法抽离。

2024-06-24 21:02:43 129

原创 前端v-if和v-show的区别是什么???

v-if:是否渲染dom,如果为false就不进行渲染;性能更高。v-show:无论true/false都进行渲染;性能低。

2024-06-24 20:53:16 117

原创 在mybatis中resoultType和resoultMap的区别?

resoultType:使po对象中的属性与数据库中的字段实现自动映射。resoultMap:需要手动写标签,在标签中手动映射po对象与数据库中的字段。

2024-06-24 20:29:52 276

原创 war包和jar包的区别?SpringMVC和SpringBoot的区别?

SpringBoot:先说springboot的好处,打的是jar包,通过docker部署直接运行。war:需要tomcat,web应用部署,spring MVC使用。SpringMVC:xml配置,配置繁琐,打的是war包。jar:内置tomcat,jvm可以直接运行。

2024-06-24 17:58:07 91

原创 SpringIoc容器中的Bean是否是线程安全的?

不安全,默认单例,那么多个线程同时访问和修改这个状态时,其它线程可以给感知到,可能会互相影响,所以不安全。

2024-06-24 16:19:55 380

原创 事务的开启方式

【代码】事务的开启方式。

2024-06-24 13:13:06 182

原创 项目从接收到发布的流程

3、每个人拿到任务后,根据具体的任务需求与其他人沟通(定义一些公共的模块),根据自己的需求编写接口(供别人调用),实现功能。6、上线后,对我们的应用进行监控,通过elk,skywalking监控日志,如果出现错误就及时解决,解决不了就立刻上报。2、开需求发布会,确定开发周期,根据需求分析划分模块,确定技术栈,派发任务。4、通过GitFlow发布流程。1、项目经理拿到客户的需求。5、CI/CD发布流程,

2024-06-24 13:06:09 568

原创 GitFlow流程

2024-06-24 12:56:36 101

原创 dockerfile文件的中的命令

【代码】dockerfile文件的中的命令。

2024-06-19 17:14:19 347

原创 不建议使用存储过程,视图

使用函数计算,这样压力都给到了数据库,及时我们使用集群,当大量的请求进来时,我们的数据库可能也无法相应其它请求。:我们开发过程中一般都是禁止超过三张表的连接,每次查询视图时都会查找表连接,过多的连接会造成我们查询的效率低下。

2024-06-19 17:02:03 296

原创 如何设计一个秒杀系统

设计一个秒杀系统,整体而言可以从前端与后端进行优化。对于前端优化而言,可以从「页面静态化 + CDN」、请求频率限制进行优化。其中「页面静态化 + CDN」指的是将不变的静态数据固定下来,然后放入 CDN 服务器,从而提高用户请求的响应速度,降低服务器的并发压力。请求频率限制,则是通过抢购概率与抢购频率限制,降低后端服务器的服务压力。对于后端优化而言,一般有「增加缓存层 + 预热数据」、「MQ 异步处理」、「限流、熔断、降级」、业务侧优化这 4 种优化方式。

2024-06-18 22:11:34 1057

原创 JWT的优势

CSRF攻击,采用的是cookie进行攻击的;也避免XSS攻击,XSS采用的是js脚本进行攻击。:移动端没有cookie,jwt。

2024-06-18 10:05:45 294

原创 Ribbon与Nginx的区别

nginx:可以反向代理,静态代理服务器,负载均衡,https认证。,它不会直接连接到服务的某个特定实例,而是通过。

2024-06-17 21:25:28 1055

原创 常用的设计模式

(始终使用同一个对象)饿汉式/懒汉式DCL. synchronized. volatile(多线程可见性,不保原子性禁止指令重排):沿着执行链执行同一请求.直至执行链完成.应用:Spring MVC/Gateway/Spring Security。深拷贝可以用于创建对象,但这并不是原型模式的唯一实现方式),:喂猫吃鱼.根据所监听对象变化.其被依赖对象进行对应处理.例:监听器机制.(复制基本类型的属性,引用类型采用的是复制指向这些对象的内存地址):下单接口.根据前端所传type.动态执行对应类。

2024-06-17 20:55:16 576

zookeeper的压缩包

zookeeper的压缩包

2024-01-17

MySQL安装详细教程!!!

MySQL安装详细教程!!!

2023-08-02

如何用Java代码写出二维码!!!

如何用Java代码写出二维码!!!

2023-07-28

如何用Java代码写出二维码!!!

如何用Java代码写出二维码!!!

2023-07-28

Java快速生成set和get方法!!!

Java快速生成set和get方法!!!

2023-07-12

如何在系统控制台显示彩色字体???

如何在系统控制台显示彩色字体???

2023-07-11

Java课程设计之英汉词典(简单实用版)

简易词典,可以直接使用

2023-07-05

空空如也

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

TA关注的人

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