- 博客(166)
- 收藏
- 关注

原创 Java江湖路 | 专栏目录
在实际开发场景中,很多时候需要引入很多的中间件,比如redis、mq、es等,这些其实配置并不难,但也是需要我们花费时间去百度,去老项目复制等,特别是对于不是很熟练的小伙伴,可能因为各种原因卡着了,那因为这种原因而耽搁时间是得不偿失的。所以我就本着一切从简,一切都是组件化的思想把这些实现步骤、对应场景写出来,就是为了我们需要的时候,不需要这里翻资料哪里查资料,直接看该文章复制过去即可,达到真正的开箱即用,甚至等后面有时间,将这些都封装为一个个的start,用的时候直接引入即可
2023-07-30 17:44:42
2522
7
原创 SpringBoot实现文件记录日志,日志文件自动归档和压缩
Logback是一个Java日志框架,它是log4j的后继者,被广泛用于应用程序中记录日志。Logger是 Logback 中最重要的组件之一。它负责收集应用程序中的日志信息,并将其传递给适当的 Appender 进行处理。Logger 使用不同的日志级别来决定日志信息的输出方式。常见的日志级别有DEBUG、INFO、WARN、ERROR 和 TRACE。Appender(日志输出目的地):Appender决定日志信息的输出目的地。
2023-08-06 10:42:50
3721
3
原创 CentOS7安装JDK8(实操版 | 源码安装和yum安装)
该文章纪录的是CentOS7安装JDK操作,每一步都有记录,争取每一位看该文章的小伙伴都能操作成功~
2023-08-04 14:33:17
2784
原创 SpringBoot使用RestTemplate发送http请求(实操版)
RestTmplate是Spring框架提供的 ,可用于在应用中调用 rest 服务,它简化了与 http 服务的通信方式,统一了RESTful的标准,封装了 http 链接, 我们只需要传入url及返回值类型即可。相较于之前常用的 HttpClient,RestTemplate 是一种更优雅的调用 RESTful 服务的方式。怎么样,是不是特别的方便和简单~
2023-08-03 10:38:53
12798
原创 SpringBoot集成MyBatisPlus+MySQL(超详细)
MyBatis-Plus是一个MyBatis的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。MybatisPlus可以节省大量时间,所有的CRUD代码都可以自动化完成特性无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑损耗小:启动即会自动注入基本 CURD,性能基本无损耗,直接面向对象操作。
2023-08-01 22:45:09
21523
8
原创 SpringBoot整合knife4j(快速入门超详细版)
在日常开发中,写接口文档是我们必不可少的,而Knife4j就是一个接口文档工具,可以看作是Swagger的升级版,但是界面比Swagger更好看,功能更丰富早期,swagger-boostrap-ui是1.x版本,如今swagger-bootsrap-ui到2.x,同时也更改名字Knife4j,适用于单体和微服务项目。怎么样,是不是特别的方便和简单~
2023-08-01 15:05:51
40906
6
原创 解决docker拉取镜像报错:Error response from daemon: Get “https://registry-1.docker.io/v2/“: dial tcp
今天做完一个新项目,搭建了一个新的虚拟机,打算使用docker来搭建各种环境,发现拉取镜像报错。一看,挺新奇,一开始只是简单的以为我打错命令了,以为docker没有这个镜像,然后查询下mysql镜像:
2023-07-28 20:56:46
139952
26
原创 SpringBoot实战项目整合RabbitMQ+ElaticSearch实现SKU上下架功能
最终实现效果:针对SKU的上下架1、后台选择SKU,点击上架,该SKU修改为上架状态2、同时向MQ发送消息3、服务监听收到消息后向Es中新增该SKU基本信息1、后台选择SKU,点击下架,该SKU修改为下架状态2、同时向MQ发送消息3、服务监听收到消息后向Es中删除该SKU基本信息那为什么一个上架的功能要使用这么多知识点呢,最简单的方式不就是修改SKU的状态,然后用户端只显示已上架的SKU就可以么。原因有两点:1.提高效率2.还是效率。
2023-07-03 15:28:17
1719
原创 如何优化Web应用程序的性能
在加载页面时,不要立即加载所有的图片,而是在需要时再加载。:在页面中减少HTTP请求,例如将多个CSS文件合并到一个文件中,将多个JavaScript文件合并到一个文件中,减少对外部资源的依赖。:优化CSS、JavaScript和HTML文件以减少其大小,这可以通过使用压缩工具(如Gzip)和删除无用的代码来实现。这些是常见的Web应用程序性能优化技巧,但在设计优化策略时应该根据具体的应用场景和需求进行个性化的优化。:减少不必要的代码、删除重复代码和返回值等都可以减少代码中的垃圾并提高代码效率。
2023-06-15 11:54:08
492
原创 如何在Spring框架中解决其他常见错误
可以通过检查应用程序上下文中的bean定义并确保所有依赖项都被正确定义和装配来解决这个问题。:当提供的参数不符合方法或函数的期望时,会抛出该异常。通常是因为bean的名称或类型错误,或者bean在应用程序上下文中不存在。以上是在Spring框架中常见的错误示例,排除了这些错误后,可以让Spring应用程序运行得更加稳定,并更轻松地扩展和维护。同时当遇到问题时,还可以通过检查日志文件和跟踪代码来帮助排除错误并找到正确的解决方案。可以通过检查bean的定义以及其依赖关系来解决这个问题,确保它们被正确设置。
2023-06-15 11:52:53
690
原创 解决 Cannot find current proxy: Set ‘exposeProxy‘ property on Advised to ‘true‘ to make it available,
2、开启AOP获取(在SpringBoot启动类或者配置类上加)默认是false,不允许获取代理对象,我们改成true即可~因为使用了AOP中的获取代理对象,代码如下 报错代码。
2023-05-19 17:54:01
8412
3
原创 【Jmeter第四章】Jmeter添加断言(捕捉自定义错误信息)
关于Jmeter中的断言,其实可以理解为对返回信息,返回代码的一种处理因为对应HTTP状态200而言,但我们会定义不同的返回值,例如 code等于20000代表成功,等于5000其实就是失败,但是HTTP状态值还是200如果我们不设置断言的话,那么对于Jmeter而言都是绿色的,看着就不得劲了,我们就需要额外配置下,配置后即使HTTP状态值为200,但还是可以区分的。
2023-05-18 20:52:16
2362
原创 【Jmeter第三章】Jmeter给请求添加请求头
给请求加上请求头最常见的场景就是在请求头上添加token了,这里也拿添加token来举例
2023-05-18 20:35:07
5372
1
原创 SpringBoot集成SpringSecurity从0到1搭建权限管理详细过程(认证+授权)
最近工作需要给一个老系统搭建一套权限管理,选用的安全框架是SpringSecurity,基本上是结合业务从0到1搭建了一套权限管理,然后想着可以将一些核心逻辑抽取出来写一个权限通用Demo,特此记录下。
2023-05-02 10:24:04
7830
10
原创 软件架构的演进(超详细)
之前对各种架构一直有所了解,但也只是了解,没有过多的研究为什么架构在慢慢演进,新架构代替老架构的理由是什么,而刚好最近学习了一下架构的演进过程,感觉挺有意思的,特此记录一下
2023-04-23 16:02:06
1939
原创 SpringBoot解决用户重复提交订单(方式三:通过Redis实现-升级版)
在上一篇文章中,我们详细的介绍了随着下单流量逐渐上升,为了降低数据库的访问压力,通过请求唯一IDRedis分布式锁来防止接口重复提交,流程图如下!每次提交的时候,需要先调用后端服务获取请求唯一ID,然后才能提交。对于这样的流程,不少的同学可能会感觉到非常鸡肋,尤其是单元测试,需要每次先获取值,然后才能提交!能不能不用这么麻烦,直接服务端通过一些规则组合,生成本次请求唯一ID呢?答案是可以的!今天我们就一起来看看,如何通过服务端来完成请求唯一 ID 的生成?
2023-04-16 11:29:24
1857
1
原创 SpringBoot解决用户重复提交订单(方式二:通过Redis实现)
在上一篇文章中,我们详细的介绍了对于下单流量不算高的系统,可以通过请求唯一ID数据表增加唯一索引约束这种方案来实现防止接口重复提交!随着业务的快速增长,每一秒的下单请求次数,可能从几十上升到几百甚至几千。面对这种下单流量越来越高的场景,此时数据库的访问压力会急剧上升,上面这套方案全靠数据库来解决,会特别吃力!对于这样的场景,我们可以选择引入缓存中间件来解决,可选的组件有 redis、memcache 等。下面,我们以引入Redis缓存数据库服务器,向大家介绍具体的解决方案!
2023-04-16 11:20:01
2505
2
原创 SpringBoot解决用户重复提交订单(方式一:通过唯一索引实现)
1.由于用户误操作,多次点击表单提交按钮2.由于网速等原因造成页面卡顿,用户重复刷新提交页面3.黑客或恶意用户使用 postman 等网络工具,重复恶意提交表单这些情况都可能会导致表单重复提交,造成数据重复,比如订单表,重复提交订单数据所造成的问题,可能不仅仅是数据上的混乱,也会造成业务混乱。那么问题来了,我们该如何防止用户重复提交数据呢?方案实践如下!
2023-04-16 11:06:24
3001
原创 Java实现在线沟通功能
t-io是基于JVM的网络编程框架,和netty属同类,所以netty能做的t-io都能做,考虑到t-io是从项目抽象出来的框架,所以t-io提供了更多的和业务相关的API,大体上t-io具有如下特点和能力内置完备的监控和流控能力内置半包粘包处理一骑绝尘的资源管理能力内置心跳检查和心跳发送能力内置IP拉黑一流性能和稳定性(第三方权威平台TFB提供性能测试和稳定性服务)极其稳定的表现(很多用户还是停在t-io 1.x版本,就是因为太过稳定,不想变动)内置慢攻击防御。
2023-02-24 22:21:13
4432
1
原创 【微信开发第五章】SpringBoot实现微信分享
在进行微信公众号业务开发的时候,有些时候需要用到微信分享,以卡片的形式分享出去,例如订单信息,用户信息。该篇文章每一步都有记录,力争理解的同时各位小伙伴也能够实现功能
2022-11-20 16:09:27
3091
2
原创 【微信开发第四章】SpringBoot实现微信H5支付
在进行微信公众号业务开发的时候,**微信支付**可以说是非常重要的一环。该篇文章每一步都有记录,力争理解的同时各位小伙伴也能够实现功能
2022-11-20 15:57:29
2946
1
原创 【微信开发第三章】SpringBoot实现微信授权登录
用户进入页面,前端发送请求给后端,携带要跳转页面的参数后端接受到请求后,给微信服务器发送用户授权的请求用户同意授权后,微信服务器会自动回调,携带code和要跳转的页面给后端,后端凭借该用户的code就可以做很多事情了,比如:获取用户信息。
2022-11-13 17:05:51
9992
7
原创 【微信开发第二章】SpringBoot实现微信公众号普通消息和模板消息回复
在进行微信公众号业务开发的时候,微信公众号的消息回复是非常重要的一环,而微信公众号消息回复分为:普通消息自动回复和模板消息回复。该篇文章会先使用微信测试工具过一遍流程,再使用代码进行实现,**并且每一步都有记录,力争理解的同时各位小伙伴也能够实现功能**
2022-11-12 17:11:03
4592
5
原创 【微信开发第一章】SpringBoot实现微信公众号创建菜单,同步菜单功能
在进行微信公众号业务开发的时候,微信公众号的自定义菜单是非常重要的一环,该篇文章会先使用微信测试工具过一遍流程,再使用代码进行实现,争取看过的小伙伴都能够实现,创建公众号菜单和代码同步公众号菜单功能。**本文章在每一步都有记录,力争理解的同时各位小伙伴也能够实现功能**
2022-11-12 16:08:22
4138
6
原创 SpringBoot集成腾讯云云点播服务/视频上传
腾讯云点播(Video on Demand,VOD)基于腾讯多年技术积累与基础设施建设,为有音视频应用相关需求的客户提供包括音视频存储管理、音视频转码处理、音视频加速播放和音视频通信服务的一站式解决方案。文档中心:https://cloud.tencent.com/document/product/266上传视频可将视频上传到云点播的存储中,以进行后续的处理和分发等。单击【管理】,可以查看视频详情;前端集成有两种方式,使用“超级播放器预览”与“web播放器预览”,或者代码已经不更新,推荐使用前者,因此
2022-11-07 21:25:49
4132
1
原创 SpringBoot集成腾讯云存储COS服务
(1)申请腾讯云账号:https://cloud.tencent.com/(2)实名认证(3)开通“对象存储COS”服务(4)进入管理控制台输入桶名称(这里的桶类似于阿里云OSS存储的Bucket),选择:公有读取,其他默认点击 桶名称,进入详情页,可测试上传文件到这里就完了, 怎么样,是不是特别简单。
2022-11-07 21:07:28
2227
原创 解决SpringBoot项目中@RestControllerAdvice全局异常失效问题
解决SpringBoot项目中@RestControllerAdvice全局异常失效问题
2022-10-27 14:14:19
13007
1
原创 JavaSE多线程的复习和多线程的异步编排详解(CompletableFuture详细介绍和使用)
在实际项目中,我们多线程环基本都不使用前三种方式来创建多线程,因为那样太消耗资源了,而是通过线程池的方式来提交任务,而线程池的使用,用的更多则是JDK8新特征中的 CompletableFuture。
2022-10-16 17:31:21
2054
原创 MySQL索引的创建方式和设计原则
看到这里,你是不是对于自己的sql语句里面的索引的有了更多优化想法呢。避免回表在InnoDB的存储引擎中,使用辅助索引查询的时候,因为辅助索引叶子节点保存的数据不是当前记录的数据而是当前记录的主键索引,索引如果需要获取当前记录完整数据就必然需要根据主键值从主键索引继续查询。这个过程我们成位回表。想想回表必然是会消耗性能影响性能。那如何避免呢?使用索引覆盖,举个例子:现有User表(id(PK),name(key),sex,address,hobby…)如果在一个场景下,
2022-09-26 18:20:41
800
原创 SprignCloud Alibaba集成Nacos实现服务注册、服务发现、服务调用详细代码案例
SprignCloud Alibaba集成Nacos实现服务注册、服务发现、服务调用详细代码案例
2022-09-11 23:13:35
693
原创 解决 java: 程序包com.baomidou.mybatisplus.annotation不存在
解决 java: 程序包com.baomidou.mybatisplus.annotation不存在的两种方式
2022-08-26 22:05:03
35790
7
原创 什么是WebSocket 和 Java使用WebSocket实现前后端交互实战(可用作在线沟通)
Java使用WebSocket实现前后端交互(可用作在线沟通)
2022-08-21 15:00:40
4408
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人