- 博客(272)
- 收藏
- 关注
原创 Oracle数据库语法的使用
要为Oracle数据库中的具体字段加索引,可以按照以下步骤操作:确认需要添加索引的字段:首先,确定哪些字段需要添加索引。通常情况下,需要为经常被查询的字段添加索引,例如常用于WHERE子句的字段或JOIN操作的字段。查看现有的索引:使用DESCRIBE命令查看该表的索引情况。这将显示表的结构,包括索引信息。创建索引:使用命令创建索引。这将在"last_name"字段上创建一个名为"idx_last_name"的索引。验证索引:可以再次使用DESCRIBE命令验证索引是否被成功创建。
2024-10-26 22:40:34
974
1
原创 SpringSecurity中的@PreAuthorize注解具体介绍与使用
指定用户认证的规则、设置用户的身份验证方式,例如基于内存、数据库、LDAP 等方式,并定义用户的角色和权限。
2024-10-26 21:38:51
1715
原创 23种设计模式介绍与案例分析
设计模式是在软件设计中反复出现的问题的通用解决方案。它们是经过多次验证和应用的指导原则,旨在帮助软件开发人员解决特定类型的问题,提高代码的可维护性、可扩展性和重用性。设计模式是一种抽象化的思维方式,可以帮助开发人员更好地组织和设计他们的代码。它们提供了一种通用的框架,可以用于解决各种不同的软件设计问题。设计模式不是完整的代码,而是一种描述问题和解决方案之间关系的模板。设计模式并不是一成不变的法则,而是根据不同的问题和情境来决定是否使用以及如何使用。
2024-08-12 22:10:12
409
原创 通用框架实践|Pipeline设计 + 幂等重试
本文讲述在闲鱼同城模块中,针对二手车和租房等业务的商业化需求,设计和实现了一个基于Pipeline模式和幂等性控制的通用框架。1.定义上下文BasePipelineContext用于Pipeline中传递参数;@Data/*** 扩展信息*//*** 处理结果*/2.定义Pipeline中的基本方法类为Stage接口,其中泛型T继承自BasePipelineContext类;Stage/*** 执行当前阶段的逻辑*/3.定义Idempotent接口用于实现幂等操作;
2024-08-12 21:40:41
1006
原创 Mybatis XML 数据源为 Oracle 之批量插入或更新 Merge Into 的具体介绍与使用
由于近期在所开发的项目中,对于数据入库,有存在即更新,不存在则插入的需求,因此发现了 Oracle中的 MergeInto 命令。本文将对MergeInto的用法进行介绍并将 MergeInto 和批量插入进行结合,同时还会对在 MergeInto 开发中遇到的问题进行总结。MergeInto 命令是 Oracle9i 中新增的命令,有了 MergeInto 语句,我们对数据能够不仅仅只做单一的插入或单一的更新,而是可以将更新与插入一起操作。
2024-08-12 21:29:36
1728
原创 Mybatis:XML 标签的介绍与使用
动态 SQL 是 MyBatis 的强大特性之一。在 JDBC 或其它类似的框架中,开发人员通常需要手动拼接 SQL 语句。根据不同的条件拼接 SQL 语句是一件极其痛苦的工作。例如,拼接时要确保添加了必要的空格,还要注意去掉列表最后一个列名的逗号。而动态 SQL 恰好解决了这一问题,可以根据场景动态的构建查询。动态 SQL,它一般是根据用户输入或外部条件动态组合的SQL语句块。 动态SQL能灵活的发挥SQL强大的功能、方便的解决一些其它方法难以解决的问题。 相信使用过动态SQL的人都能体会到它带来的便利,
2024-08-04 23:27:27
1072
原创 RocketMQ:03-console可视化界面功能介绍与使用
rocketmq-console是rocketmq的一款可视化工具提供了mq的使用详情等功能,本章针对于rocketmq-console可视化界面常用的一些功能进行讲解。(1) Broker TOP 10 :是指集群中的Broker列表,可以查看broker处理消息的数量。(2) Broker 5min trend : 五分钟内Broker的趋势信息。(4) 筛选出某个Topic下5分钟的消息数量。点击集群即可查看到集群中各broker的信息。的列表,查看所有topic的消息数量。(4) TOPIC配置。
2024-08-04 22:55:29
1657
原创 RocketMQ:02-消息发送类型介绍与操作
前边我们发送的消息内容格式都是字符串,在生产开发中消息内容格式是相对较复杂的,下面介绍如何对消息格式进行自定义。JSON是互联网开发中非常常用的数据格式,它具有格式标准,扩展方便的特点,将消息的格式使用JSON进行定义,可以提高消息内容的扩展性,RocketMQ支持传递JSON数据格式。/*** 自定义消息实体类*/@Data@ToString/*** 主键id*//*** 创建时间*//*** money*//*** 标题*/创建。
2024-08-04 22:50:31
921
原创 RocketMQ:01- 基础知识与本地安装和云服务器搭建及可视化控制台搭建案例
RocketMQ是阿里开源的一款非常优秀中间件产品,脱胎于阿里的另一款队列技术MetaQ,后捐赠给Apache基金会作为一款孵化技术,仅仅经历了一年多的时间就成为Apache基金会的顶级项目。并且它现在已经在阿里内部被广泛的应用,并且经受住了多次双十一的这种极致场景的压力。(2017年的双十一,RocketMQ流转的消息量达到了万亿级,峰值TPS达到5600万)。并且其内部通过Java语言开发,便于阅读与修改。
2024-08-04 22:30:17
1374
原创 优雅地使用:Java 中的 String.format
是 Java 中的一个静态方法,用于创建格式化的字符串。它类似于 C 语言中的printf函数,允许使用格式说明符来格式化字符串。方法非常灵活,可以处理多种数据类型和格式化需求。方法在 Java 中非常有用,可以通过格式说明符来灵活地创建格式化的字符串。它适用于多种数据类型和格式化需求,能够显著提高代码的可读性和可维护性。在日常编程中,熟练使用方法将使得格式化输出更加简洁和高效。
2024-08-04 22:07:25
539
原创 Java:水平越权与垂直越权访问漏洞问题
电网机巡智能管控平台是XX省电力巡检智能管控平台,辅助全省无人机巡线作业工作顺利、高效开展。由于今年互联网出现了严重的安全事故。XX省对全省的业务系统提高了安全意识,开展了为期4个月的“护网行动”,对全省所有的业务系统进行全面的安全检查,成立了护网行动小组。“非常荣幸的”我们研发的电网机巡智能管控平台被列为检查对象。在安全检查的过程中,发现了大量接口存在越权访问漏洞。借此机会,对越权访问漏洞进行了学习,结合本次护网行动的开展过程,总结了一下关于越权访问漏洞的相关内容。
2024-07-14 23:22:51
1678
原创 SpringBoot自定义注解+AOP+Redis优雅实现防重复提交
声明:原文作者:CSDN-蒾酒原文地址:https://blog.csdn.net/qq_62262918/article/details/137483835本文介绍了springboot开发后端服务中,防重复提交功能的设计与实现,坚持看完相信对你有帮助。同时欢迎订阅springboot系列专栏,持续分享spring boot的使用经验。/**/*** 锁定时间,默认5000毫秒/*** 锁定时间单位,默认毫秒/*** 提示信息。
2024-06-01 23:32:03
1205
原创 SpringBoot轻松解决Excel导入导出功能
在日常的开发工作中,Excel 文件的读取和写入是非常常见的需求,特别是在后台管理系统中更为频繁,基于传统的方式操作excel通常比较繁琐,EasyExcel 库的出现为我们带来了更简单、更高效的解决方案。本文将介绍 EasyExcel 库的基本用法和一些常见应用场景,帮助开发者更好地利用 EasyExcel 提高工作效率。官网地址:github.com/alibaba/eas…
2024-06-01 23:04:39
956
转载 使用Spring注解@Retryable和@Recover优雅地处理调用第三方接口延时问题
两个注解一般配合使用,通常用于解决由于网络、数据库、文件系统等原因导致的临时性错误,以提高应用的健壮性和可用性。@Retryable和@Recover是Spring Framework中的注解,用于支持在方法执行期间发生异常时的重试和恢复操作。@Retryable注解用于标记方法,在方法执行期间发生异常时进行重试。重试行为可以使用Spring Retry框架提供的默认策略或自定义策略来定义。我们可以指定要重试的异常类型以及最大重试次数和重试间隔等参数。@Recover。
2024-05-21 23:49:05
256
原创 Spring:@Async注解使用注意事项及九大失效场景
前言原文作者:微信公众号:苏三说技术场景举例代码案例点击此处可观看:@Async注解使用注意事项及九大失效场景
2024-05-13 22:45:37
261
原创 IDEA插件:CodeGeex
前言CodeGeeX是由清华大学和智谱AI联合开发的多语言代码生成模型。CodeGeeX是一款AI编程助手,其功能类似于Github Copilot、Codeium、CodeWhisperer、Bito等智能编程助手。CodeGeeX支持Python、C++、Java、JavaScript、Go等10多种主流编程语言。它可以帮助程序员仅通过写注释来描述所需的代码功能,然后底层大模型会生成所需的代码。CodeGeeX是一个基于Transformer的大规模预训练编程语言模型,含有40个Tra
2024-04-20 23:48:27
1770
原创 ObjectMapper的具体介绍与使用
ObjectMapper 类(com.fasterxml.jackson.databind.ObjectMapper)是 Jackson 的主要类,它可以帮助我们快速的进行各个类型和 Json 类型的相互转换。ObjectMapper通过writeValue()实现序列化,通过readValue()实现反序列化。ObjectMapper通过Feature枚举类,初始化了很多的默认配置。问题的json样式:String param=
2024-04-15 23:32:11
5990
原创 针对MaxCompute优化案例分享
MaxCompute 是阿里巴巴集团推出的一种大数据计算平台,用于处理海量数据和进行数据分析。它提供了高可靠性、高扩展性和高性能的数据处理能力,支持 SQL 查询、MapReduce 计算和机器学习等多种计算模型。MaxCompute 主要用于数据仓库构建、数据挖掘、数据分析和业务智能等领域。通过MaxCompute,用户可以方便地进行数据处理、分析和挖掘,以支持业务决策和数据驱动的应用场景。
2024-04-15 23:05:38
455
原创 Mysql生产问题排查
某天用户反馈线上产品报错,迅速排查发现,上述表中新接入了一个业务:在dataworks接入了一个新的group(假设名字叫bad_group),同步任务在当天异常往mysql表里导了千万量级数据(其中实际有效的只有几千条,其余为脏数据),导致线上产品查询缓慢、报错。定位到问题以后,第一反应是把错误的bad_group的数据先全部清掉,保留其他group的数据,恢复上线查询,然后再慢慢想办法重新导入正确数据,可惜没想到。。。。
2024-04-15 22:58:18
234
原创 Collectors.toMap 引起的 Duplicate key xxx 的错误,你真的分析对了?
前言有时候看到报错日志打印出:Duplicate key,乍一看,很简单主键重复。如果项目系统监控日志做的好可能马上能定位出具体的代码方法和具体行数,但是日志系统做的不好,那就单单这个一个报错如何分析呢?那么这个时候就先定位到具体的接口和方法,然后排查方法中的代码是否使用到了:Collectors.toMap 这个方法,因为HashMap的key重复是否引起这个异常的。下面这篇文章我看了一下写的还不错,通俗易懂,也讲明了原理,对新手朋友很友好,有兴趣可以已观看一下。参考文章点击此处可跳转:
2024-04-08 23:56:04
882
1
原创 SpringBoot:基于使用application.yml文件配置多环境方式的作用
阅读点击此处可跳转:application.yml文件配置多环境方式(dev、test、prod)
2024-04-08 22:47:18
492
原创 SpringBoot 中的 application.yml 和 bootstrap.yml 的区别
前言在日常开发当中我们往往会看到在项目中的 resources 文件夹下 有两个文件,1-application.yml、2-bootstrap.yml,第一个我们可能并不陌上,那么第二个配置文件你是否了解呢?为什么要有两个,有什么区别,底层是如何处理的?下面我们就根据这篇文章来剖析一下这个两个文件夹的作用阅读点击此处可跳转:application.yml和bootstrap.yml的区别
2024-04-08 21:56:50
566
3
原创 SpringBoot:自定义线程池配置类
有时候我们在项目中做一些长链路的跑批任务时,基于Springboot项目的定时任务,我们可以指定一个自定义的线程配置类进行单独提供给具体跑批任务使用,而不占用整个系统资源。
2024-03-29 23:34:46
1350
转载 IDEA:项目启动时报错:java.lang.OutOfMemoryError: GC overhead limit exceeded
项目时,MAVEN一直报错:java.lang.OutOfMemoryError: GC overhead limit exceeded,多次刷新问题依然存在;项目时,MAVEN一直报错:java.lang.OutOfMemoryError: GC overhead limit exceeded,多次刷新问题依然存在;中执行:mvn clean install -DskipTests -Dfull,运行正常可以得到期望的结果;调整webservice。调整webservice。
2024-03-22 23:15:22
5539
原创 你真的了解所谓的压测吗?
这里就重点介绍一下比较常用的工具:JMeter,JMeter(Apache JMeter)是一个功能强大的开源压力测试工具,主要用于对 Web 应用程序和各种服务进行性能测试。
2024-03-18 14:56:13
797
原创 数据同步操作需要注意哪些点?
前言有时候基于业务,我们会做一些数据清洗,或者老项目数据同步新项目的相关操作。在做这些业务的时候,往往需要注意一些必要的关键点,否则会造成数据的错乱,我们知道数据一单错乱是很难处理的。参考文章原作者:捡田螺的小男孩点击此处可跳转:数据同步操作需要思考哪些维度?
2024-03-17 17:00:43
285
原创 大疆Action3视频导出卡顿原理及解决方案分析
优点:可以使用高帧率去拍视频,不用在手机中再次编辑进度条,可直接使用。优点:不占用内存卡内存,可以使用视频压缩模式。缺点:这种方案吃内存,说白了就是空间换时间。缺点:每个视频都需要编辑一下,添加工作量。
2024-03-15 23:59:09
8169
原创 SOFA 相关框架你有没有听过?
一、 前言1、什么是 SOFA?SOFA 是 Simple Object-oriented and Flexible Architecture 的简称,是阿里巴巴国际技术事业部自研的专门针对复杂业务场景的应用架构SOFA是蚂蚁自研的一套金融级分布式中间件,目前正在逐步向业界开源。SOFA的全称有两个,最早是Service Oriented Fabric Architecture,即面向服务的架构。随着2018年的开源,其全称改为Scalable Open Financial Architectur
2024-03-14 15:51:41
2220
原创 RabbitMQ 还可以这么用,我真的惊呆了
前言最近接触了公司的一个项目,需要我这边去里面处理一下业务,基于业务的问题,我需要用到MQ。特点就在于,我发现里面的 RabbitMQ 跟我们以往的使用方式有点不太一样,结果我一看依赖发现用的是:springCloud-stream +rabbitmq 的方式。说实话这种用法我以前没有接触过,还可以这么用,于是我的好奇心一下子就上来了,就跟同事聊了一下这个东西。疑惑带着这几个问题找到了我们架构师,然后让他为我讲解了一下。为什么用这种整合的方式?对比传统独立的 rabbitmq
2024-03-14 15:28:52
502
原创 try catch 应该在 for 循环里面还是外面
前言其实就是看业务。我需要出现异常就终止循环的,就放外头;不需要终止循环,就搞里头但是要注意一点就是,别在for循环里面去查库调用第三方啥的,这些操作,如果必要,需要慎重考虑了参考文章点击可跳转:try catch 应该在 for 循环里面还是外面
2024-03-14 13:48:23
224
原创 EasyCode 插件的具体使用
前言EasyCode 是基于IntelliJ IDEA Ultimate版开发的一个代码生成插件,主要通过自定义模板(基于velocity)来生成各种你想要的代码。通常用于生成Entity、Dao、Service、Controller。如果你动手能力强还可以用于生成HTML、JS、PHP等代码。理论上来说只要是与数据有关的代码都是可以生成的,具体细节可以查看如下文章EasyCode 官方教学gitee地址:https://gitee.com/makejava/EasyCode点击此处跳转到:开发必
2024-03-13 23:39:55
397
2
原创 MQ真的真的非用不可吗?
也不影响下单,因为下单之后订单系统写入消息队列之后不用关心其他操作,库存系统系统恢复之后,获取消息队列中的消息,进行减库存的操作。虽然并行处理可以提高效率,但是由于发送短信和发送邮件对于我们正常使用应用来说是没有影响的,所以客户端不需要当它发送短信和邮件完成之后才提示用户注册成功,当成功写入数据库时,就可以返回了。:将注册信息写入数据库成功之后,发送注册短信的同时发送注册邮件,三个任务完成之后返回给客户端。2.库存系统更改了减库存的接口(例如修改了入参),订单系统需要进行相应的改变,订单系统会被影响。
2024-03-12 23:46:48
596
原创 中间件 Redis 服务集群的部署方案
正是在这样的大数据高并发的需求之下,Redis 集群方案应运而生。redis集群是对redis的水平扩容,即启动N个redis节点,将整个数据分布存储在这个N个节点中,每个节点存储总数据的1/N。在互联网业务发展非常迅猛的早期,如果预算不是问题,强烈建议使用“增强单机硬件性能”的方式提升系统并发能力,因为这个阶段,公司的战略往往是发展业务抢时间,而“增强单机硬件性能”往往是最快的方法。
2024-03-12 23:28:36
452
原创 多线程处理你真的学会了,带你看看 CompletableFuture
咱们都知道可以通过继承Thread类或者实现 Runnable 接口两种方式实现多线程。但是有时候我们希望得到多线程异步任务执行后的结果,也就是异步任务执行后有返回值,Thread 和 Runnable 是不能实现的。当我们需要返回值的时候怎么办呢?Java 1.5 推出的 Callable 和 Future 接口就解决了这个问题。但是因为 Future 有几个局限,由于这几个局限,在Java1.8就推出了加强版的Future类:CompletableFuture。
2024-03-12 23:20:05
1225
原创 SQL注入的场景复现和解决方案
SQL注入(SQL Injection)是一种常见的网络攻击技术,它利用应用程序没有正确过滤用户输入的数据,将恶意的 SQL 代码注入到应用程序中执行,从而导致应用程序的安全性受到威胁。通简单来说,就是通过构造恶意的 SQL 语句,将恶意代码注入到应用程序中执行,从而实现各种攻击手段。
2024-03-12 16:53:55
1521
原创 高并发场景系统需要准备哪里东西
综上所述,设计高并发系统需要从多个方面考虑,需要综合运用各种技术和工具,进行全面的测试和评估,以实现系统的高可用、高性能和高安全性。
2024-03-04 16:39:31
350
原创 IDEA:git 回滚本地提交-git 选择 Reset Current Branch to
前言回滚提交到本地但是还没有 Push 上去的提交选择我们要回滚的节点,然后点击 git 选择 Reset Current Branch to… 再选择 Hard 。当我们点击 Reset 的时候,代码就会回滚到单前选中的这个版本
2024-01-30 22:12:41
733
1
原创 idea:Remote JVM Debug 真的太好用了
填写好图中的这几个信息以后,然后启动debug模式,这样我们在系统的具体环境中点击对应功能就能将断点打到我们本地了,非常适合排查问题和了解业务。
2024-01-27 23:54:15
701
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人