03 2023 档案
摘要:尽管咱们是做Java开发的,但是基本的都会和MySQL打交道,并且面试中MySQL的占比都不少,本文来和大家聊聊,关于MySQL的一些开发规范。 数据库对象命名规范 数据库对象是数据库的组成部分,常见的有以下几种:表(Table )、索引(Index)、视图(View)、图表(Diagram)、缺省
阅读全文
摘要:前言 如题,这个小玩意,就是不限制你查的是哪张表,用的是什么类。 我直接一把梭,嘎嘎给你一顿导出。 我知道,这是很多人都想过的, 至少我就收到很多人问过我这个类似的问题。 我也跟他们说了,但是他们就是不动手,其实真的很简单。 不动手怎么办? 我出手呗。 不多说开搞 。 正文 玩法很简单,我之前有写过
阅读全文
摘要:本文正在参加「金石计划 . 瓜分6万现金大奖」 序 今天下午突然 出现 测试环境 cpu飙高,干到了 60%,其他项目 响应时间明显变长。。。有点吓人,不想背锅 项目背景 出问题的项目是 需要连接各个不同nacos 和不同的 namespace 进行对应操作的 一个项目,对nacos的操作都是htt
阅读全文
摘要:Java EasyExcel带格式多线程导出百万数据 1. 背景说明 2. 方案概述 (1)大数据量导出问题主要是以下三个地方: (2)将写入导出Excel等功能单独分开成一个微服务: (3)注意: (4)方案设计: 标注说明 (5)maven依赖: 3. 详细设计 4. 缓存 5. 可行性验证 6
阅读全文
摘要:刚接到了一个需求,生成一个pdf,一开始以为挺简单的,通过模板生成嘛,我也发过相应的文章,根据模板直接生成pdf,响应到前端或者根据模板生成pdf,直接指定下载位置,这两种方案都可以,不过这篇文章主要讲的生成的pdf是既有模板填充还需要自己动态生成表格,包括还需要通过java去生成Echarts图形
阅读全文
摘要:一、功能说明 SpringBoot的定时任务的加强工具,实现对SpringBoot原生的定时任务进行动态管理,完全兼容原生@Scheduled注解,无需对原本的定时任务进行修改 二、快速使用 具体的功能已经封装成SpringBoot-starter即插即用 <dependency> <groupId
阅读全文
摘要:前言 本文为描述通过Interceptor以及Redis实现接口访问防刷Demo 这里会通过逐步找问题,逐步去完善的形式展示 原理 通过ip地址+uri拼接用以作为访问者访问接口区分 通过在Interceptor中拦截请求,从Redis中统计用户访问接口次数从而达到接口防刷目的 如下图所示 工程 项
阅读全文
摘要:文章目录 1. 模拟线程池抛异常 2. 如何获取和处理异常 方案一:使用 try -catch 方案二:使用Thread.setDefaultUncaughtExceptionHandler方法捕获异常 方案三:重写afterExecute进行异常处理 1. 模拟线程池抛异常 在实际开发中,我们常常
阅读全文
摘要:前言 系统上线时,非常容易出问题。 即使之前在测试环境,已经执行过SQL脚本了。但是有时候,在系统上线时,在生产环境执行相同的SQL脚本,还是有可能出现一些问题。 有些小公司,SQL脚本是开发自己执行的,有很大的风险。 有些大厂,有专业的DBA把关,但DBA也不是万能的,还是有可能会让一些错误的SQ
阅读全文
摘要:1、前言 老铁们是不是经常为写一些实体转换的原始代码感到头疼,尤其是实体字段特别多的时候。介绍一个开源项目 mapstruct ,可以轻松优雅的进行转换,简化你的代码。 当然有的人喜欢写get set,或者用BeanUtils 进行复制,代码只是工具,本文只是提供一种思路。 先贴下官网地址吧:map
阅读全文
摘要:前言 接口性能优化对于从事后端开发的同学来说,肯定再熟悉不过了,因为它是一个跟开发语言无关的公共问题。 该问题说简单也简单,说复杂也复杂。 有时候,只需加个索引就能解决问题。 有时候,需要做代码重构。 有时候,需要增加缓存。 有时候,需要引入一些中间件,比如mq。 有时候,需要需要分库分表。 有时候
阅读全文
摘要:1.情景展示 如上图所示,我们想要终止for循环,使用return。 执行结果如下: 我们可以看到,只有赵六没被打印出来,后续的数组元素依旧被执行了。 也就是说,关键字"return",在这里执行的效果相当于普通for循环里的关键词continue"。 2.原因分析 我们知道,在普通for循环里面,
阅读全文
摘要:使用NavicatPremium12连接oracle11g数据库时报ORA-28547错误 这是因为Navicat自带的oci.dll并不支持oracle11g,需要去官网下载支持的版本。 先用你的IDEA或者别人的连接到oracle数据库(为了查询版本)1、查询版本SQL:select * fro
阅读全文
摘要:一、问题背景 最近部分销售人员反馈在 APP 上查询自己名下客户订单数据时,当往下拉取数据的时候,列表上经常出现重复的订单数据,经过排查,后端代码是通过如下方式来实现数据的分页查询的。 limit offset, size order by create_time desc 经过细致的分析,这种排序
阅读全文
摘要:前言 在实际的开发项目中,一个对外暴露的接口往往会面临很多次请求,我们来解释一下幂等的概念:任意多次执行所产生的影响均与一次执行的影响相同。按照这个含义,最终的含义就是 对数据库的影响只能是一次性的,不能重复处理。如何保证其幂等性,通常有以下手段: 1、数据库建立唯一性索引,可以保证最终插入数据库的
阅读全文
摘要:“我报名参加金石计划1期挑战——瓜分10万奖池,这是我的第2篇文章,点击查看活动详情” 前言 大家好,我是小郭,今天我们主要来说一说List操作在实际使用中有哪些坑,以及面对这些坑的时候我们要怎么解决。 1. Arrays.asList转换基本类型数组的坑 在实际的业务开发中,我们通常会进行数组转L
阅读全文
摘要:过去这段时间主要负责了项目中的用户管理模块,用户管理模块会涉及到加密及认证流程,加密已经在前面的文章中介绍了,可以阅读用户管理模块:如何保证用户数据安全。今天就来讲讲认证功能的技术选型及实现。技术上没啥难度当然也没啥挑战,但是对一个原先没写过认证功能的菜鸡甜来说也是一种锻炼吧 技术选型 要实现认证功
阅读全文
摘要:本文正在参加「金石计划」 大家好,我是飘渺!今天给大家介绍一下如何在SpringBoot中解决Redis的缓存穿透、缓存击穿、缓存雪崩的问题。 缓存穿透 什么是缓存穿透 缓存穿透指的是一个缓存系统无法缓存某个查询的数据,从而导致这个查询每一次都要访问数据库。 常见的Redis缓存穿透场景包括: 查询
阅读全文
摘要:1. XSS跨站脚本攻击 ① XSS漏洞介绍 跨站脚本攻击XSS是指攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中Web里面的Script代码会被解析执行,从而达到恶意攻击用户的目的。XSS攻击针对的是用户层面的攻击! ② XSS漏洞分类 存储型XSS: 存储型XSS,持
阅读全文
摘要:文章目录 一、功能说明 二、快速使用 三、实现原理 1、动态管理实现 (1) 配置管理介绍 (2) 使用后处理器拦截SpringBoot原本的定时任务 (3) 使用ApplicationRunner初始化自定义的定时任务运行器 (4) 进行动态管理 2、增强接口实现 (1) 增强接口 (2) 代理抽
阅读全文
摘要:前言 面试官: 来说说,一千万的数据,你是怎么查询的?B哥:直接分页查询,使用limit分页。面试官:有实操过吗?B哥:肯定有呀 此刻献上一首《凉凉》 也许有些人没遇过上千万数据量的表,也不清楚查询上千万数据量的时候会发生什么。 今天就来带大家实操一下,这次是基于MySQL 5.7.26做测试 准备
阅读全文
摘要:场景: 当我们业务数据库表中的数据越来越多,如果你也和我遇到了以下类似场景,那让我们一起来解决这个问题 数据的插入,查询时长较长 后续业务需求的扩展 在表中新增字段 影响较大 表中的数据并不是所有的都为有效数据 需求只查询时间区间内的 评估表数据体量 我们可以从表容量/磁盘空间/实例容量三方面评估数
阅读全文
摘要:0.前言 本篇文章是<<代码整洁之道>>的学习总结, 通过这篇文章你将了解到整洁的代码对项目、公司和你的重要性,以及如何书写整洁的代码. 通过命名、类、函数、测试这四个章节,使我们的代码变得整洁. 1.为什么要保持代码整洁? 不整洁的代码随着时间的增加而增加时,生产力会随之降低. 导致的结果就是:
阅读全文
摘要:大家好,我是小林。上周五我发了一篇「 MySQL 是怎么加锁?」的文章,当时这篇文章是重写了以前的文章,相比以前的文章多了 1w 字。期间有位读者认真看完后,跟我反馈,希望再多解释下二级索引(非唯一索引) 的间隙锁具体可以防止哪些新记录插入,因为相比于主键索引的间隙锁,考虑的因素会比较多。所以后来,
阅读全文
摘要:点击关注公众号:互联网架构师,后台回复 2T获取2TB学习资源! 上一篇:Alibaba开源内网高并发编程手册.pdf 一、背景 针对老项目,去年做了许多降本增效的事情,其中发现最多的就是接口耗时过长的问题,就集中搞了一次接口性能优化。本文将给小伙伴们分享一下接口优化的通用方案。 二、接口优化方案总
阅读全文
摘要:整体阅读时间,在 40 分钟左右。 大家好,我是楼仔! 常见的消息队列很多,主要包括 RabbitMQ、Kafka、RocketMQ 和 ActiveMQ,相关的选型可以看我之前的系列,这篇文章只讲 RabbitMQ,先讲原理,后搞实战。 文章很长,如果你能一次性看完,“大哥,请收下我的膝盖”,建议
阅读全文
摘要:你好,我是田哥 面试中,被问到Redis问题的概率非常高,如果问一些理论性的问题,相信你只要背背八股文就能搞定,但,如果结合项目来问就没那么好对付了。 这里给你推荐一个在线刷java面试题的神器: woaijava.cc/mianshi/index 本文,咱们就来聊聊Redis的使用场景(如果你项目
阅读全文
摘要:携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第30天,点击查看活动详情 Spring Boot项目开发完成后,需要以jar或war的方式将项目打包部署到测试开发环境。 jar与war jar即Java Archive,是Java归档文件,该文件格式与平台无关,它允许将许多文件
阅读全文
摘要:正常情况下,在Java中入参是不建议用做返回值的。除了造成代码不易理解、语义不清等问题外,可能还埋下了陷阱等你入坑。 问题背景 比如有这么一段代码: @Named public class AService { private SupplyAssignment localSupply = new S
阅读全文
摘要:MySQl 专栏持续更新 不说晦涩难懂的东西 尽量输出容易理解 和 使用的SQL技巧 和 初中级开发不是很常用的但很有用的知识 欢迎查看👉🏻👉🏻👉🏻SQL 专栏 查漏补缺 指教一二 每一次写博客对技术都会有更深入的理解 积少成多 百天计划我也想看看自己有多少成长 祝君好运 工作顺利 本文
阅读全文
摘要:Java EasyExcel带格式多线程导出百万数据 1. 背景说明 2. 方案概述 (1)大数据量导出问题主要是以下三个地方: (2)将写入导出Excel等功能单独分开成一个微服务: (3)注意: (4)方案设计: 标注说明 (5)maven依赖: 3. 详细设计 4. 缓存 5. 可行性验证 6
阅读全文
摘要:SpringBoot 统一功能处理 前言 一、用户登录权限效验 1.1 最初的用户登录验证 1.2 Spring AOP 用户统一登录验证的问题 1.3 Spring 拦截器 1.3.1 准备工作 1.3.2 自定义拦截器 1.3.3 将自定义拦截器加入到系统配置 1.4 拦截器实现原理 1.4.1
阅读全文
摘要:文章目录 1. XSS跨站脚本攻击 ①:XSS漏洞介绍 ②:XSS漏洞分类 ③:防护建议 2. SQL注入攻击 ①:SQL注入漏洞介绍 ②:防护建议 3. SpringBoot中如何防止XSS攻击和sql注入 1. XSS跨站脚本攻击 ①:XSS漏洞介绍 跨站脚本攻击XSS是指攻击者往Web页面里插
阅读全文
摘要:前言 本篇分析的技巧点其实是比较常见的,但是最近的几次的代码评审还是发现有不少兄弟没注意到。 所以还是想拿出来说下。 正文 是个什么场景呢? 就是 for循环 里面还有 for循环, 然后做一些数据匹配、处理 这种场景。 我们结合实例代码来看看。 场景示例: 比如我们现在拿到两个list 数据 ,
阅读全文
摘要:sql语句的执行顺序: FROM <1> ON <2> JOIN <3> WHERE <4> GROUP BY <5> HAVING <6> SELECT <7> DISTINCT <8> ORDER BY <9> LIMIT <10> 复制代码 1、LIMIT 语句 分页查询是最常用的场景之一,但
阅读全文
摘要:前几天看了极客时间一个二维码的视频,写的不错,这里总结下 在日常生活中,二维码出现在很多场景,比如超市支付、系统登录、应用下载等等。了解二维码的原理,可以为技术人员在技术选型时提供新的思路。对于非技术人员呢,除了解惑,还可以引导他更好地辨别生活中遇到的各种二维码,防止上当受骗。 二维码,大家再熟悉不
阅读全文
摘要:0、前言 关于promise、async/await的使用相信很多小伙伴都比较熟悉了,但是提到事件循环机制输出结果类似的题目,你敢说都会? 试一试? 🌰1: async function async1 () { await new Promise((resolve, reject) => { re
阅读全文
摘要:刚接到了一个需求,生成一个pdf,一开始以为挺简单的,通过模板生成嘛,我也发过相应的文章,根据模板直接生成pdf,响应到前端或者根据模板生成pdf,直接指定下载位置,这两种方案都可以,不过这篇文章主要讲的生成的pdf是既有模板填充还需要自己动态生成表格,包括还需要通过java去生成Echarts图形
阅读全文
摘要:每次聊到代码优化,都会有很多人说理论、架构、核心思路,其实我觉得代码优化这事说简单了很简单,说复杂了吧它也有一定的难度,但是我觉得有一个良好的编码习惯很重要,下面分享一下14个springboot项目中优化代码的小技巧,让代码优化更容易,就像完成一件小事。 1. 定义配置文件信息 有时候我们为了统一
阅读全文
摘要:前言 之前分享一篇代码优化的文章:条件语句的多层嵌套问题优化,助你写出不让同事吐槽的代码! 今天再次分享一些我日常工作中常用的代码优化技巧,希望对大家有帮助! 文章首发在公众号(月伴飞鱼),之后同步到个人网站:xiaoflyfish.cn/ 觉得有收获,希望帮忙点赞,转发下哈,谢谢,谢谢 正文 类成
阅读全文
摘要:前言 最近在做代码重构,发现了很多代码的烂味道。其他的不多说,今天主要说说那些又臭又长的if...else要如何重构。 在介绍更更优雅的编程之前,让我们一起回顾一下,不好的if...else代码 最近无意间获得一份BAT大厂大佬写的刷题笔记,一下子打通了我的任督二脉,越来越觉得算法没有想象中那么难了
阅读全文
摘要:文章目录 一、关系图理解 二、区别 1.过滤器 1.1`HttpServletRequestWrapper` 1.2 `OncePerRequestFilter` 1.3 配置 2.拦截器 2.1登录拦截 2.2配置 3.监听器 三、注意 1.静态资源问题 2.登录拦截ajax重定向 四、测试 1.
阅读全文
摘要:有梦想,有干货,微信搜索 【大迁世界】 关注这个在凌晨还在刷碗的刷碗智。 本文 GitHub github.com/qq449245884… 已收录,有一线大厂面试完整考点、资料以及我的系列文章。 作为一名开发者,大部分都用过 GitHub。但你可能不知道,GitHub有很多隐藏的功能可以帮助我们更
阅读全文
摘要:作者|慕容千语 来源:www.jianshu.com/p/c806003a8… 前言 在实际的开发项目中,一个对外暴露的接口往往会面临很多次请求,我们来解释一下幂等的概念:任意多次执行所产生的影响均与一次执行的影响相同。按照这个含义,最终的含义就是 对数据库的影响只能是一次性的,不能重复处理。如何保
阅读全文
摘要:可能很多人在大一的时候,就已经接触了递归了,不过,我敢保证很多人初学者刚开始接触递归的时候,是一脸懵逼的,我当初也是,给我的感觉就是,递归太神奇了! 可能也有一大部分人知道递归,也能看的懂递归,但在实际做题过程中,却不知道怎么使用,有时候还容易被递归给搞晕。也有好几个人来问我有没有快速掌握递归的捷径
阅读全文
摘要:前言 大家好这里是阳九,一个中途转行的野路子码农,热衷于研究和手写前端工具. 我的宗旨就是 万物皆可手写 新手创作不易,有问题欢迎指出和轻喷,谢谢 本文适合有一定node后端基础的前端同学,如果对后端完全不了解请恶补前置知识。 废话不多说,直接进入正题。 我们来看一下,各个版本的文件上传组件大概都长
阅读全文
摘要:利用JAVA向Mysql插入一亿数量级数据—效率测评 这几天研究mysql优化中查询效率时,发现测试的数据太少(10万级别),利用 EXPLAIN 比较不同的 SQL 语句,不能够得到比较有效的测评数据,大多模棱两可,不敢通过这些数据下定论。 所以通过随机生成人的姓名、年龄、性别、电话、email、
阅读全文