自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 mysql分页查询&多用GitCode平台

最关键的是,它可以在当前搜索的内容上继续提问。

2024-03-21 10:46:24 298

原创 待做事情哦

若删除失败则说明已经有请求进行了删除操作,这已经不是第一次提交了,所以直接返回告诉用户“属于重复提交”即可。(拦截器的目的是为了防止用户快速点了多次同时进行删除Redis的key)后端接收到请求后,让这些请求都经过一个拦截器,在拦截器中解析请求头中的token,并删除Redis中的key(即token),删除成功时再放行去执行业务代码;当用户填好表单点击提交时,在请求头中就能携带这个唯一的token了。每种方法都有适用的场景和局限性,选择时需结合系统特性进行权衡。2. xxl-job定时任务。

2024-03-02 16:09:51 257

原创 VSCode快捷键&使用技巧

编辑器操作:当前行的复制、移动、删除: 格式化代码:光标和选择操作: ①选择文本:Shift + 方向键 ②持续选中多个单词:Ctrl+Shift+方向键 ③光标跳转到行首:Home ④光标跳转到行尾:End ⑤光标跳转到文件开始:Ctrl + Home(数字锁按钮关闭情况下) ⑥光标跳转到文件末尾:Ctrl + End(数字锁按钮关闭情况下)快速返回之前代码所在位置:Alt + 方向键←→折叠/展开代码: ①折叠全部代码:按下Ctrl + K,

2024-07-11 11:27:28 849

原创 安装MySQL5.7版本步骤&遇到问题

下载zip压缩包的MySQL的网址:上面这个视频中有哦。

2024-06-20 16:05:38 487

原创 达内Angular学习

安装前,确保node.js和npm包已经安装,并符合版本要求。在执行这个命令前,先安装的1.7版本,结果镜像库中没有找到。如果报错“不是内部命令”时,看达内视频的解决办法。类比tbs系统,有一定的类似。

2024-06-11 16:01:10 443

原创 前端已学习内容

说明:讲义已下载。两个小项目还没学没练。

2024-06-07 14:05:24 263

原创 数据结构与算法(上)

时长:上篇40h + 下篇38h。

2024-05-25 19:23:00 299

原创 黑马面试篇1(续)

总结:什么是AQS?该模式定义了一系列算法,并将每个算法封装起来,使它们可以相互替换,且算法的变化不会影响使用算法的客户。策略模式属于对象行为模式,它通过对算法进行封装,把使用算法的责任和算法的实现分割开来,并委派给不同的对象对这些算法进行管理。/*** 出行策略接口*//*** 出行方式*//*** 自行车策略类*/@OverrideSystem.out.println("选择自行车出行...");/*** 飞机策略类*/@Override。

2024-04-29 14:04:20 467

原创 黑马面试篇1

降级是接口级别的,熔断是服务级别的。

2024-04-27 19:11:43 661

原创 分布式ID之雪花算法

Seata基于改良版雪花算法的分布式UUID生成器分析:时间戳和节点ID位置进行了调换。Seata内置分布式ID的代码位置:io.seata.common.util.IdWorker,可以直接使用;com.baomidou.mybatisplus.core.toolkit.IdWorker也有ID生成器。

2024-04-25 12:03:12 1538

原创 黑马微服务课程2

我们可以利用MyBatisPlus的Wrapper来构建复杂的Where条件,然后自己定义SQL语句中剩下的部分。

2024-04-24 14:51:40 725

原创 黑马微服务课程1

默认情况下,发生限流、降级、授权拦截时,都会抛出异常到调用方。异常结果都是flow limmiting(限流)。这样不够友好,无法得知是限流还是降级还是授权拦截。而如果要自定义异常时的返回结果,需要实现BlockExceptionHandler接口。

2024-04-23 16:20:48 763

原创 JVM复习总结2024.4.18(很重要)

字符串常量池中。

2024-04-18 19:18:42 867

原创 Spring(三)

由于多个线程可能访问同一份Bean实例,当Bean的内部包含了可变状态(mutable state)即有可修改的成员变量时,就可能出现线程安全问题。Spring单例Bean不是线程安全的原因在于,当多个线程并发访问并修改同一个Bean实例的状态时,可能会导致数据不一致或其他未预期的行为。,可以在一定程度上解决线程安全问题,因为它确保了每个线程都有自己的变量实例,而不会与其他线程共享同一实例。,它可以创建多个条件变量,允许多组线程独立等待不同的条件,提供更大的灵活性。的值却只有1,而不是预期的2。

2024-04-13 17:57:08 904

原创 2024.4.12清空Google剩余的几个网址

从上面这个链接学到了Spring Bean是否是线程安全的。上面这个是马士兵金九银十的一张IO思维导图。下面这三个是很好的面试题网址。

2024-04-12 23:52:42 391

原创 MyBatis-Plus

官网:乐观锁插件 | MyBatis-Plus

2024-04-12 23:16:09 417

原创 微服务learning

有道云笔记 (youdao.com)Spring Cloud Alibaba| ProcessOn免费在线作图,在线流程图,在线思维导图系统由单体架构到微服务架构到底是如何演进的?-腾讯云开发者社区-腾讯云 (tencent.com)阿里限流神器Sentinel夺命连环 17 问? - 掘金 (juejin.cn)openFeign夺命连环9问,这谁受得了? - 掘金 (juejin.cn)Spring Cloud Alibaba(二) 环境搭建及nacos注册中心配置中心 - 掘金 (juejin.cn)

2024-04-12 22:44:38 598

原创 分页的实现方法&索引知识

版本号

2024-04-12 13:48:47 855

原创 SpringMVC

MVC是一种软件架构的思想,将软件按照模型、视图、控制器来划分M:Model,模型层,指工程中的JavaBean,作用是处理数据JavaBean分为两类:一类称为实体类Bean:专门存储业务数据的,如 Student、User 等一类称为业务处理 Bean:指 Service 或 Dao 对象,专门用于处理业务逻辑和数据访问。V:View,视图层,指工程中的html或jsp等页面,作用是与用户进行交互,展示数据。

2024-04-12 09:29:08 396

原创 Mybatis学习&面试题

MyBatis属于半⾃动化ORM框架。本质上就是对JDBC的封装,通过MyBatis完成CRUD。MyBatis核⼼配置⽂件详解;MyBatis三⼤对象的作⽤域和⽣命周期;Mybatis封装了javassist动态⽣成dao接口的代理实现类,因此XxxDaoImpl代码不写了;插⼊数据时获取⾃动⽣成的主键;在mybatis-config.xml⽂件中使⽤typeAliases标签来起别名的两种配置方式;不同类型参数处理;@Param注解原理及使用;

2024-04-09 16:13:05 222

原创 Shiro

1)Spring Security是基于Spring的身份认证(Authentication)和用户授权(Authorization)框架,提供了一套Web应用安全性的完整解决方案。其中核心技术使用了Servlet过滤器、IOC和AOP等。2)Sa-Token是一个轻量级Java权限认证框架,出现较晚(好像是2020年),主要解决:登录认证、权限认证、Session会话、单点登录、OAuth2.0、微服务网关鉴权等一系列权限相关问题。

2024-04-09 15:01:30 367

原创 Spring Security

首先,写一个类实现UserDetails接口,并实现该接口中的7个方法, UserDetails 接口的7个方法如下图:然后,再写一个类实现UserDetailService接口,重写里面的方法,并返回UserDetails就可以了。上面这个例子是为了更好地理解下面连接数据库认证的做法。验证用户密码是否正确,不需要我们在程序中自己写,Spring Security框架就自动帮我们做了。

2024-04-08 11:38:20 435

原创 SpringBoot面试题积累

1) 使用@ConfigurationProperties: 你可以创建一个类并使用注解,指定需要绑定的配置前缀,这样可以覆盖自动配置中的相应部分。例如,如果你想覆盖数据库连接池的配置,可以创建一个名为然后在你的主配置类中使用来启用它。2) 声明自己的@Bean: 如果你想替换自动配置的一个特定bean,可以在你的配置类中使用@Bean注解创建一个新的bean。Spring Boot会优先考虑你自己定义的bean。@Bean这样,将会替代自动配置中的MyServicebean。

2024-04-06 19:08:23 389

原创 equals和==的区别

分析:上面a、b、c都是字符串类型,所以对于字符串类型,==比较的就是地址值是否相等,equals比较的就是值本身是否相等。a、b都在常量池中,内存地址的指向相同,而new的对象c在堆中。equals(Object obj)方法是Object超类中的方法,比较的是对象在内存中是否为同一个对象,即比较的是地址值(equals方法默认比较的是对象的引用是否相等);String类中的equals方法对Object超类中的equals方法进行了重写,比较的是两个字符串的值本身(即字面量)是否相等;

2024-04-03 19:12:04 984

原创 String.format() 用于创建格式化的字符串

是一个具体的类,也是日期/时间格式化的具体实现。你可以定义自己的日期/时间模式来解析和格式化日期。方法来实现,它们使用类似于C语言的格式化字符串语法。等类,提供了更现代且推荐的日期/时间处理方式。是占位符,表示将字符串类型的数据插入;在Java中,格式化字符串主要通过。自 Java 8 起,引入了。意味着保留两位小数的浮点数。表示将整型数据插入。

2024-04-03 16:51:38 727

原创 DO、DTO、BO、VO、PO、DAO、POJO

POJO(Plain Ordinary Java Object)简单无规则Java对象,它只是一个普通的Java类,遵循JavaBean规范,不附加特定框架或设计模式的要求,常作为数据容器使用。VO(Value Object)值对象,主要用于表示页面展示的数据,往往是从其他对象(如BO或DTO)中提取出前端需要的部分,减少了数据传输量。BO(Business Object)业务对象,它封装了一定的业务逻辑,可能涉及对DAO的调用,用于实现对数据的处理和服务。对象是一个接口,通常用来存储视图相关的数据。

2024-04-03 13:49:11 1154

原创 23种设计模式

简单工厂模式,更多内容见讲义,它不是23种设计模式之一。在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。工厂方法模式的目的很简单,就是封装对象创建的过程,提升创建对象方法的可复用性。工厂方法模式的主要角色:抽象工厂:提供了创建产品的接口,调用者通过它访问具体工厂的工厂方法来创建产品。具体工厂:主要是实现抽象工厂中的抽象方法,完成具体产品的创建。抽象产品:定义了产品的规范,描述了产品的主要特性和功能。

2024-04-02 15:00:11 574

原创 Redis面试题汇总

例如客户端在本地,Redis服务器在阿里云的广州,两地直线距离约为800公里,那么1次RTT时间=800 x2/ ( 300000×2/3 ) =8毫秒,(光在真空中传输速度为每秒30万公里,这里假设光纤为光速的2/3 )。而我们在使用 Redis 时,一般会采用主从集群 +哨兵的模式部署,这样做的好处在于,当主库异常宕机时,哨兵可以实现「故障自动切换」,把从库提升为主库,继续提供服务,以此保证可用性。3、复用性,客户端发送的脚本会存储在Redis中,这意味着其他客户端可以复用这一脚本来完成同样的逻辑。

2024-03-31 18:43:11 454

原创 Spring事务介绍

正如本文章靠下一点反例中说的,同一个serviceImpl的方法间调用,且Mapper还是同一个的,不在事务传播行为研究的范畴哦。事务的传播行为有七种。挂起(“挂起”指并列的两个事务,互不影响,而不是嵌套关系)只有前两个用的多,最多再加上第三个。但为了面试都得知道。

2024-03-29 23:47:25 289

原创 Spring面试题(二)

也就是说,Bean都是单例的,我们可以先把所有的单例Bean实例化出来,放到一个集合当中(我们可以称之为缓存),所有的单例Bean全部实例化完成之后,以后我们再慢慢的调用setter方法给属性赋值。这样就解决了循环依赖的问题。Setter方法注入引起的循环依赖:Spring 可以解决大多数的循环依赖,因为它可以先提前暴露一个代理对象,然后再注入依赖。:基于不同的持久化技术,选择合适的事务管理器。构造函数注入造成的循环依赖:Spring 无法解析循环依赖的对象,因为每个Bean在创建时都依赖另外的Bean。

2024-03-27 11:01:46 205

原创 Spring高频面试题

比如,如果项目中有Web开发相关的依赖,Spring Boot就会自动配置一些与Web相关的bean,如Tomcat服务器,DispatcherServlet等。AOP(Aspect-Oriented Programming)面向切面编程,允许程序员定义“横切关注点”,并将它们模块化为单独的称为“切面”的代码单元,可以跨多个对象进行拦截操作,例如日志记录、事务管理等。DI则是IOC的一个具体实现,通过外部配置文件或注解方式,将依赖的对象传入,而不是由对象自己创建,从而解耦合。通常应用于跨层的方法拦截。

2024-03-26 19:34:34 905

原创 IDEA使用常用的设置

波波老师。

2024-03-26 11:07:54 517

原创 Redis项目实战

在上面 2.3 中功能已经实现了,但是有个问题,那就是每个需要做缓存的接口都需要redisTemplate去取和存一下,会产生大量重复代码,这样太不优雅了,下面我们就是用AOP+自定义注解来消除这些重复代码。为了避免每次都用redisTemplate操作,创建RedisTool工具类。创建annotation包,在包中定义注解MyCache//缓存时间(单位秒,默认是无限期)

2024-03-24 17:21:09 873

原创 如何正确定义常量

使用接口定义常量可能导致类污染的原因在于,当一个类实现了包含常量的接口时,它必须继承这个接口中的所有常量,即使它可能并不需要或者使用这些常量。在设计模式中,如工厂模式等,有时为了保证客户端只能获取到符合某种规范的对象,可以将常量作为接口的一部分,强制实现该接口的类遵循这些常量定义的约束。当你需要在多个不相关或者相互独立的类中共享这些常量时,接口可以让这些类实现同一个接口并访问其中的常量,实现代码的复用。:如果一个类只需要接口中的一个或几个常量,但被迫导入整个接口,这会导致代码中引入不必要的依赖。

2024-03-24 12:42:21 824

原创 Java枚举详解

如上文所述,枚举可以直接定义方法,就像在任何类中一样。

2024-03-24 12:41:50 3311

原创 JMeter并发工具的使用

配置环境变量,以下为GitCode AI给的答案,验证后没问题。(Windows 系统)JMeter是一款免安装包,官网下载好后直接解压缩并配置好环境变量就可以使用。2)选中“测试计划”右键,然后像下图那样操作,生成了“线程组”;4)还是选中“线程组”,右键,按照下图操作;1)点击“文件”菜单,选择“新建”后生成“测试计划”;3)选中“线程组”,右键,按照下图操作;Windows系统双击bin目录下的。文件即可启动(Linux 运行。

2024-03-23 19:47:51 806

原创 Redis的安装与启动

在官网下载好Redis安装包,上传到Linux中并进行解压到相应(如/opt/software/)目录中;(注意:完成了第二步后,即安装了C/C++语言编译器后,再进行解压,否则执行make编译命令时会报错有个目录没有!执行如下命令,安装C/C++语言编译器;(官网下载的Redis安装包是需要编译后才可以安装的,而Redis是用C/C++语言编写的,CentOS7是没有安装这两款编译器的,所以需要先安装这两款编译器)执行以上命令时,报错找不到镜像。

2024-03-23 01:14:09 2910

原创 MySQL面试复习记录

JDBC(Java DateBase Connectivity)Java数据库连接,就是利用Java语言访问数据库的一门技术。JDBC规范是由sun公司提供的一套规范,本质是一堆接口,需要不同的数据库厂商提供的驱动去实现接口。JDBC主要有两个包组成(分别是java.sql和javax.sql),并且Java中已经包含这两个包了,但除此之外,我们只需要在Java程序中导入需要操作数据库对应的驱动包(jar包)就可以操作数据库了。JDBC操作数据库的6个步骤:1.注册数据库驱动;2.获取数据库连接;

2024-03-20 10:49:03 417

原创 RocketMQ学习笔记五(黑马)大神级

/创建主题//根据时间戳从队列中查找消息偏移量//查找消息队列中最大的偏移量//查找消息队列中最小的偏移量//根据偏移量查找消息//根据条件查找消息//根据消息ID和主题查找消息//启动//关闭//查找该主题下所有消息//同步发送消息//同步超时发送消息//异步发送消息//异步超时发送消息//发送单向消息//选择指定队列同步发送消息//选择指定队列异步发送消息//选择指定队列单项发送消息//批量发送消息。

2024-03-15 12:26:10 374

原创 RocketMQ学习笔记四(黑马)项目

课程地址:(视频35~88,搭建了一个电商项目,8h)待学,待完善。项目安装(打包)的命令:(注意-D后有空格)执行位置:根目录用cmd打开;或者idea打开项目的Terminal终端。

2024-03-15 11:38:49 322

空空如也

空空如也

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

TA关注的人

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