开发实战
文章平均质量分 87
该专栏总结阿Q在工作过程中用到的技术,有业务针对性,可以给大家提供参考!
阿Q说代码
阿Q:CSDN博客专家、Java后端领域优质创作者、InfoQ签约作者、掘金优质创作者,现任一家世界五百强企业技术 Leader。
作为深软件开发工程师的阿Q,专注于后端技术栈分享,包括但不局限于:JVM、数据库、中间件、微服务、Spring全家桶。
展开
-
【Spring Security】的RememberMe功能流程与源码详解
如果用户勾选了 “记住我” 选项,Spring Security 将在用户登录时创建一个持久的安全令牌,并将令牌存储在 cookie 中或者数据库中。当用户关闭浏览器并再次打开时,Spring Security 可以根据该令牌自动验证用户身份。原创 2023-06-09 16:36:36 · 3954 阅读 · 167 评论 -
实战:单点登录的两种实现方式,附源码
单点登录(SSO)是一种身份验证服务,允许用户使用单个标识来登录多个应用程序或系统。如下图所示,用户只需要用户名/密码登陆一次就可以访问系统A、系统B和系统C。原创 2023-06-01 16:47:27 · 5312 阅读 · 116 评论 -
实战:实现缓存和数据库一致性方案
mysql、canal、rabbitmq、redis 实现缓存和数据库一致性方案实战原创 2023-04-21 13:30:53 · 542 阅读 · 4 评论 -
教你用Mock实现复杂登陆接口下如何优雅的获取Token
在“学习”代码的过程中竟然惊奇的发现同事写了测试用例,对于一直使用`PostMan`来进行接口测试的我表示非常不理解,测试用例到底有什么神奇之处?原创 2022-07-11 17:05:49 · 3004 阅读 · 12 评论 -
阅读别人的代码,是一种怎样的体验
原创:微信公众号 【阿Q说代码】,欢迎分享,转载请保留出处。之前写过一篇名为《看了同事写的代码,我竟然开始默默的模仿了。。。》的文章,今天偶然间看了下后台数据,大吃一惊。该文章的阅读量在微信公众号内竟然达到了惊人的5W+ 。对于没见过市面的我来说已经相当满足了。当然,能达到这样的数据离不开各位大佬的垂青,在此再次感谢各位大佬。于是我又抱着好奇的态度去其他平台看了下数据,感觉也不错,大体算了一下全网竟然达到了10W+——此处应有掌声,为自己鼓个掌。后面如果还有大佬想转载这篇文章,可以第一时间联系.原创 2022-05-07 10:09:54 · 388 阅读 · 1 评论 -
实力总结四类Bean注入Spring的方式
原创:微信公众号 【阿Q说代码】,欢迎分享,转载请保留出处。文章目录xml 方式注解方式@Configuration + @Bean@ImportFactoryBeanBDRegistryPostProcessor源码实战一提到Spring,大家最先想到的是啥?是AOP和IOC的两大特性?是Spring中Bean的初始化流程?还是基于Spring的Spring Cloud全家桶呢?今天我们就从Spring的IOC特性入手,聊一聊Spring中把Bean注入Spring容器的几种方式。我们先来简单.原创 2022-04-21 14:10:13 · 1425 阅读 · 0 评论 -
为什么大家都在抵制定时任务关闭超时订单
原创:微信公众号 【阿Q说代码】,欢迎分享,转载请保留出处。哈喽大家好,我是阿Q!前几天领导突然宣布几年前停用的电商项目又重新启动了,带着复杂的心情仔细赏阅“儿时”的代码,心中的酸楚只有自己能够体会。这不,昨天又被领导叫进了“小黑屋”,让我把代码重构下进行升级。看到这么“可爱”的代码,心中一万只“xx马”疾驰而过。让我最深恶痛觉的就是里边竟然用定时任务实现了“关闭超时订单”的功能,现在想来,哭笑不得。我们先分析一波为什么大家都在抵制用定时任务来实现该功能。定时任务关闭超时订单是在创建订单之后.原创 2022-03-03 11:05:51 · 626 阅读 · 6 评论 -
面试官太难伺候?一个try-catch问出这么多花样
下次让你对线面试官,你会五五开吗?原创 2022-01-21 15:45:53 · 1044 阅读 · 8 评论 -
当类的泛型相关时,如何在两个泛型类之间创建类似子类型的关系
当类的泛型相关时,如何在两个泛型类之间创建类似子类型的关系原创 2022-01-17 09:08:14 · 464 阅读 · 2 评论 -
面试官:请说出4种不使用第三方变量交换两个变量值的方法
面试官:请说出4种不使用第三方变量交换两个变量值的方法原创 2021-12-09 13:59:27 · 2203 阅读 · 13 评论 -
时间通知机制与观察者模式详细讲解
小时候最开心的事莫过于躺在沙发上看《西游记》了。大闹天宫、三打白骨精、真假美猴王…一幕幕精彩的故事萦绕脑海,现在想来,回味无穷。不知道你有没有注意到这个细节:每当孙悟空到了一个新的环境需要了解本地的“风土人情”时,都会挥舞一下金箍棒,将土地召唤出来。那么你可知道,土地公公接收孙悟空召唤的原理是什么吗?事件通知机制我们可以先将其理解为“事件通知机制”,即每当孙悟空将金箍棒敲在地上时,就相当于给土地发了一封 email 的通知,告诉他俺老孙来了,赶快出来接驾。当土地收到通知之后就会立即现身了。大家都知道原创 2021-12-01 09:12:44 · 393 阅读 · 0 评论 -
如果还不懂如何使用 Consumer 接口,来公司我当面给你讲
背景没错,我还在做 XXXX 项目,还在与第三方对接接口,不同的是这次是对自己业务逻辑的处理。在开发过程中我遇到这么一个问题:表结构:一张主表A ,一张关联表B ,表 A 中存储着表 B 记录的状态。场景:第一步创建主表数据,插入A表;第二步调用第三方接口插入B表同时更新A表的状态。此时大家应该都会想到在进行第二步的时候需要做好数据的幂等性。这样的话就会存在以下几种情况:一、B表中不存在与A表关联的数据,此时需要调用第三方接口,插入B表同时更新A表的状态;二、B表中存在与A表关联的数据;原创 2021-11-25 09:18:11 · 661 阅读 · 0 评论 -
项目实战:自定义参数解析器+策略模式 实现异步通知返回参数的处理
在项目开发过程中Z同学和C同学对实现异步通知返回参数处理提供了两种不同的解决方案,自定义参数解析器与策略模式,本文将通过实战的方式将两种方式进行讲解,希望对你有所帮助。原创 2021-11-12 08:55:28 · 703 阅读 · 1 评论 -
还在用BeanUtils拷贝对象,MapStruct才是yyds | 附源码
前几天,远在北京的小伙伴在群里抛出了“MapStruct”的概念。对于只闻其名,未见其人的我来说,决定对其研究一番。本文我们就从 MapStruct 的概念出发,通过具体的代码示例来研究它的使用情况,最后与“市面上”的其它工具来做个对比!官方介绍首先我们打开 MapStruct 的官网地址,映入眼帘的就是下边的三步曲:What is it?MapStruct 是一个代码生成器,它基于约定优先于配置的方法大大简化了 JavaBean 类型之间映射的实现。生成的映射代码使用普通方法调用,因此速度快、类型原创 2021-10-14 15:49:20 · 618 阅读 · 1 评论 -
语法糖甜不甜?巧用枚举实现“状态”转换限制
语法糖语法糖(Syntactic sugar),也被译为糖衣语法,是由英国计算机科学家彼得·约翰·兰达(Peter J. Landin)发明的一个术语,指计算机语言中添加的某种语法,这种语法对语言的功能并没有影响,但是更方便程序员使用。通常来说使用语法糖能够增加程序的可读性,从而减少程序代码出错的机会。——摘抄自百度百科本质上,JVM 并不支持语法糖,语法糖只存在于编译期。当编译器将 .java 源文件编译成 .class 字节码文件时,会进行解语法糖的操作,来还原最原始的基础语法结构。我们所熟悉原创 2021-09-14 16:26:57 · 330 阅读 · 0 评论 -
实战篇:断点续传?文件秒传?手撸大文件上传
各位看官大家好,今天给大家分享的又是一篇实战文章,希望大家能够喜欢。开味菜最近接到一个新的需求,需要上传2G左右的视频文件,用测试环境的OSS试了一下,上传需要十几分钟,再考虑到公司的资源问题,果断放弃该方案。一提到大文件上传,我最先想到的就是各种网盘了,现在大家都喜欢将自己收藏的小电影上传到网盘进行保存。网盘一般都支持断点续传和文件秒传功能,减少了网络波动和网络带宽对文件的限制,大大提高了用户体验,让人爱不释手。说到这,大家先来了解一下这几个概念:文件分块:将大文件拆分成小文件,将小文件上传\原创 2021-08-24 09:00:57 · 594 阅读 · 10 评论 -
故事篇:终于给老婆讲明白什么是logback了
故事会迟到,但他从不会缺席。今天的故事开始了,你准备好了吗?前奏简单介绍一下我的老婆:集智慧与美貌于一身的女子——阿狸,一句“我们心有灵犀,不是吗?”让我瞬间“沦陷”。阿Q: 老婆,还记得往年过节的时候我都送过你什么礼物吗?阿狸: 当然记得呀:刚过的儿童节送了一排旺仔牛奶和一大包零食;5·20送了一款我喜欢的香水;女神节给我买了一个超好看的包包…阿Q: 这都是今年的,那去年的还记得吗?阿狸: 我想想哈:去年圣诞节买了个圣诞老人的蛋糕还有一双漂亮的高跟鞋;过生日的时候送了一束鲜花还有一个大红包;原创 2021-06-03 10:59:28 · 269 阅读 · 0 评论 -
PageHelper原理深度剖析(集成+源码)
相信大家在开发过程中都用到过数据分页吧,那么问题来了,说出你平时用到的几种分页方式吧?而我在平时的工作中用到最多的应该属PageHelper这个分页插件了,此处附上官网地址:https://pagehelper.github.io/首先我们来说一下如何集成和使用它吧(以Springboot为例)pom.xml中引入依赖<dependency> <groupId>com.github.pagehelper</groupId> <artifactId>p原创 2021-03-28 18:31:07 · 1250 阅读 · 0 评论 -
Java基于Redis实现附近的人(内附源码)
前几天收到一个新的需求,需要实现类似“附近的人”的功能:根据自己当前的定位,获取距离范围内的所有任务地点。刚看到这个需求时有点懵逼,第一想到的就是要利用地球的半径公式去计算距离,也就是把地球想成一个球体,去计算球上两点之间的距离。可想而知,这样的方法效率会比较低,每条数据都要来与本人的坐标做计算,太过繁琐。经过大佬的指点,想到了用redis自带的GEO来实现此功能。实战演习以下是给大家准备的sql脚本SET NAMES utf8mb4;SET FOREIGN_KEY_CHECKS = 0;--原创 2021-03-24 23:50:14 · 1758 阅读 · 1 评论 -
Jeesite 实现后端语言国际化(亲测)
最近在做国际化的功能,一接到这个需求心里有点慌,之前没有做过相关的需求。经查阅jeesite的相关文档,发现该功能已经存在了,直接调用即可。接下来就说一下调用过程。首先呢需要去application.yml文件中将国际化功能打开,如图所示:接下来是官方文档的注释:一、固定数据语言不会变化的文字翻译,如:某个提示信息,字段 label,列表标题,按钮文字等,这些译文需要放到 properties 里。文件目录结构,支持模块化分类语言文件结构,如下:/src/main/resources/mess原创 2020-05-20 09:11:36 · 599 阅读 · 0 评论 -
Eclipse创建Servers没有Apache选项
百度找了好久,终于找到解决办法了,趁热分享一波。方法一:help->install new software加入网址是http://download.eclipse.org/releases/Neon,最后一个是你eclipse的版本。得到一系列的插件在Web, XML, and Java EE Development中找到JST Server Adapters and JST Server Adapters Extensions,这个是百度到的,经验证无法找到资源。方法二:所以直接在help原创 2020-05-16 13:51:08 · 2310 阅读 · 4 评论 -
如何将Tableau server中的视图嵌入web页面
Tableau作为可视化数据分析软件中的佼佼者,将数据运算与美观的图表完美地嫁接在一起。它的程序很容易上手,各公司可以用它将大量数据拖放到数字“画布”上,转眼间就能创建好各种图表。创建与共享绝妙的数据可视化内容,Tableau 为您呈上唾手可得的可视化分析能力。它帮助您生动地分析实际存在的任何结构化数据,以在几分钟内生成美观的图表、坐标图、仪表盘与报告。利用 Tableau 简便的拖放式界面,您可...原创 2019-06-03 15:04:14 · 10235 阅读 · 7 评论 -
Jeesite4新增用户归属机构问题
当你在使用jeesite4新增用户,选择归属机构时,会发现归属机构的顶级菜单选项存在无法选取的情况,今天阿Q就给大家解决一下这个问题。大家应该都知道jeesite4为大家提供了两个公共的文件/src/main/webapp/static/common/common.css和/src/main/webapp/static/common/common.js,大家可以通过修改这两个文件来加载自己的cs...原创 2019-06-03 10:51:18 · 761 阅读 · 0 评论 -
Jeesite4修改内置页面、新增自定义主题、修改样式
大家在使用jeesite4开发项目的过程中,肯定想将jeesite4的首页换成自己设计的页面,哪怕只是换张背景图也行,因为每个项目的需求都不同,风格要求也不同。于是阿Q就找到core项目下的sysLogin.html页面一顿大改,本地运行之后效果非常不错,但是阿Q发现打jar包发测试环境的时候呢又回到了起点,真是一顿操作猛如虎,一看战绩0-5啊。接下来,阿Q就带大家学习一下jeesite中的视图机...转载 2019-05-31 10:41:03 · 3663 阅读 · 1 评论 -
已知某年和某月,获得该月的周数及每周的始末时间
最近阿Q在项目开发中遇到一个小问题:后台统计:已知某年和某月,计算该月每周的销量。这就要求我们要获取特定年月的周数以及每周的始末时间来对数据库数据进行筛选。大家一看到这个问题是不是都会想起java的日期类Calendar,然后会调用getActualMaximum(Calendar.WEEK_OF_MONTH)来查询该月有多少个周啊?接下来,阿Q就给大家说一下该方法存在的问题以及解决方法。...原创 2019-04-29 10:59:38 · 710 阅读 · 0 评论 -
斗地主三步走——洗牌、发牌和看牌
相信大家都玩过牌游斗地主吧,今天呢,阿Q就带大家写一个简单的斗地主的洗牌、发牌和看牌的小Demo。public static void main(String[] args) { //1,买一副扑克,其实就是自己创建一个集合对象,将扑克牌存储进去 String[] num = {"3","4","5","6","7","8","9","10&原创 2019-03-08 15:27:55 · 1243 阅读 · 0 评论 -
Jeesite4本地及服务器上传文件、图片详解
大家过年好,你们的老朋友小Q又回来了,最近一段时间忙于公司项目开发,又加上过年比较忙,所以没能留出时间更新内容,大家是不是有点着急了?公司最近在使用jeesite4开发项目,我呢,对这个框架一点也不熟悉,遇到问题都是现查现用。这不,在上传文件与上传图片这直接给卡死了。百度google了好久也没能找到解决办法,经过咨询开发者ThinkGem先生,总算找到了解决方案。所以呢,为了让以后使用jeesit...原创 2019-02-12 10:38:46 · 7585 阅读 · 28 评论