
后端
文章平均质量分 86
在荒野的梦想
技术支持+企鹅1991477677
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
MySQL 8.0 SQL优化黑科技,面试官都不一定知道
MySQL 8.0优化黑科技盘点摘要:MySQL 8.0引入多项革命性特性,突破传统优化思维。文章重点介绍7个实用黑科技:1)窗口函数优化复杂查询,取代多次子查询;2)降序索引提升混合排序性能;3)Generated Column实现JSON字段高效查询;4)Invisible Index实现无风险索引测试;5)Hint强制执行计划避免优化器误判;6)Resource Group隔离不同类型查询资源;7)LATERAL JOIN简化复杂关联查询。这些技术不仅能显著提升SQL性能,在面试中展示更能体现技术深原创 2025-06-12 12:19:47 · 1028 阅读 · 0 评论 -
若依-Vue2(前后端分离)集成阿里云短信服务并实现手机验证码登录
本文介绍了如何在项目中集成阿里云短信服务实现验证码发送功能。主要内容包括:1) 注册阿里云账号并获取短信服务所需的ACCESS_KEY凭证;2) 在Maven项目中引入阿里云短信服务SDK依赖;3) 编写SmsUtil工具类封装短信发送逻辑,通过环境变量获取安全凭证;4) 结合Spring Security框架,说明需要自定义SmsCodeAuthenticationToken实现短信验证码认证。文章提供了完整的代码示例,重点强调了凭证安全获取和短信发送的具体实现方法。原创 2025-06-11 12:13:15 · 1222 阅读 · 0 评论 -
工作五年年总结:这 7 种设计模式,解决 99% 的 Java 开发场景
本文介绍了Java开发中最常用的七大设计模式及其应用场景,重点解析了单例模式、工厂模式、策略模式和观察者模式。单例模式用于创建全局唯一实例,工厂模式封装对象创建过程,策略模式实现算法灵活切换,观察者模式处理对象间的一对多依赖关系。每种模式均附有典型应用场景和Java代码实现示例,帮助开发者理解并掌握这些核心设计模式在实际项目中的运用。掌握这些模式能有效提升代码质量、可维护性和可扩展性。原创 2025-06-09 16:33:34 · 656 阅读 · 0 评论 -
推荐一些实用的慢SQL优化方案
慢 SQL 的优化,主要从两个方面考虑,SQL 语句本身的优化,以及数据库设计的优化。原创 2025-04-25 14:47:43 · 551 阅读 · 0 评论 -
Docker+Jenkins+Gitee自动化项目部署
解压需要解压到这个目录下面 /opt/develop_resource/apache-maven-3.6.3,因为后面再启动jenkins的时候需要挂载在他容器的目录里面。改完之后通过git命令上传到gitee上面后,jenkins会自动的进行构建。注意:首次进入需要获取管理员密码,可以进入Jenkins容器查看。Jenkins启动完整后进入容器查看maven是否配置正确。进入后可以新建一个账号,插件可选择性安装,这里略。这里配置的地址与前面配置的保持一致即可。进入gitee代码仓库,将密码填入,原创 2025-04-08 17:53:07 · 1830 阅读 · 0 评论 -
MySQL索引B+树
本篇文章从二叉查找树,详细说明了为什么 MySQL 用 B+ 树作为数据的索引,以及在 InnoDB 中数据库如何通过 B+ 树索引来存储数据以及查找数据相关资料MyISAM和Innodb(非聚集索引和聚集索引)、B+树的存储、MySQL的几种索引。原创 2024-06-06 09:48:22 · 898 阅读 · 0 评论 -
ConcurrentHashMap原理详解
做插入操作时,首先进入乐观锁然后,在乐观锁中判断容器是否初始化,如果没初始化则初始化容器,如果已经初始化,则判断该hash位置的节点是否为空,如果为空,则通过CAS操作进行插入。如果该节点不为空,再判断容器是否在扩容中,如果在扩容,则帮助其扩容。如果没有扩容,则进行最后一步,先加锁,然后找到hash值相同的那个节点(hash冲突)循环判断这个节点上的链表,决定做覆盖操作还是插入操作。循环结束,插入完毕。原创 2024-06-06 09:47:22 · 1666 阅读 · 0 评论 -
微服务项目将Nacos地址、命名空间、环境等配置信息,统一放在pom.xml管理教程
在Maven项目中,src/main/resources目录下的文件通常被视为资源文件,这些资源文件在构建项目时会被复制到输出目录(如target/classes),以便在运行时被访问。通过这样的配置,你可以灵活地控制哪些文件会被视为项目的资源文件,并在构建过程中将它们复制到合适的位置。这些文件也会被视为资源文件,并在构建过程中被复制到输出目录。第一个 元素指定了src/main/resources目录,它包含了true的配置,表示对该目录下的资源文件执行过滤操作。元素用于定义一个资源目录及其配置。原创 2024-04-20 17:26:31 · 844 阅读 · 0 评论 -
若依微服务版本JSON.parse: unexpected character错误排查
,若依这里是采用在配置文件当中填写具体信息的方式,来配置是否启用xss,是否是白名单,是否是匹配链接。按照后台填写的数据处理请求,如果是不启用或者是该请求为白名单,就直接将请求放过如果不通过就交给XssFilter来处理。若依框架在网关采用配置拦截器的方式来处理XSS攻击,一旦请求被过滤器拦截,就会转入到自定义的拦截器XssFilter当中,首先解决的就是判断是否启用XSS拦截器和是否需要拦截(在网关配置Xss过滤白名单接口。原创 2024-01-09 10:38:54 · 1460 阅读 · 0 评论 -
Spring Cloud Gateway网关转发websocket服务配置
客户端向 Spring Cloud Gateway 发出请求。然后在 Gateway Handler Mapping 中找到与请求相匹配的路由,将其发送到 Gateway Web Handler。Handler 再通过指定的过滤器链来将请求发送到我们实际的服务执行业务逻辑,然后返回。过滤器之间用虚线分开是因为过滤器可能会在发送代理请求之前(“pre”)或之后(“post”)执行业务逻辑。原创 2023-10-24 10:14:21 · 4059 阅读 · 0 评论 -
ThreadLocal使用及底层详解
但是在开发中我们都是使用线程池的方式,线程池的复用不会主动结束;当我们使用SimpleDateFormat的parse()方法的时候,parse()方法会先调用Calendar.clear()方法,然后调用Calendar.add()方法,如果一个线程先调用了add()方法,然后另一个线程调用了clear()方法;在java中,栈内存归属于单个线程,每个线程都会有一个栈内存,其存储的变量只能在其所属线程中可见,即栈内存可以理解成线程的私有变量,而堆内存中的变量对所有线程可见,可以被所有线程访问!原创 2022-09-20 09:12:37 · 375 阅读 · 1 评论 -
来系统学习下 lambda 表达式吧
lambda 表达式,相信大家都不陌生,就算没有用过,那应该也听说过。我也是一样,在使用新特性stream 流处理集合相关的代码时接触到这种语法,其他地方倒是不经常使用。所以也是仅仅知道一些皮毛,对于其中的原理什么的也不怎么清楚。今天准备系统的学习一番,话不多说,接下来就开始我们的学习。lambda 表达式是 Java 8 的一个新特性,可以取代大部分的匿名内部类,简化了匿名委托的使用,让你让代码更加简洁,优雅。比较官方的定义是这样的这个匿名函数没有名称,但它有参数列表、函数主体、返回类型,可能还有一个原创 2022-07-07 16:52:14 · 132 阅读 · 0 评论