
java开发知识
文章平均质量分 69
通过学习java编写java相关信息,用于复习知识,框架,和软件的使用。
Hi梅
bug不见!
展开
-
【AOP进阶】实现重试机制
当我们调用第三方服务商接口时,可能存在网络波动导致数据获取异常,得不到我们想要的结果,我们如果想要发起重试,然后又不入侵业务代码,我们使用使用AOP切面技术,通过添加注解方式来实现对应的方法进行重试,代码也很简单。AOP往期文章点击查看既然使用注解方式那么,我们应该想到注解上应该涉及到那些属性,好比:重试的最次数,发起重试的间隔时间等。原创 2023-12-25 20:32:16 · 1230 阅读 · 0 评论 -
使用函数式接口对代码简化,完成代码重复性使用
📚简介因为公司的使用Xxl-Job作为任务调度平台,其中我们大部分的报表查询数据量太大,字段又多,实时查询效率太低,等待时长也久,我们只能把常用的数据进行定时任务处理,每几分钟自动运行程序跑对应报表的Sql插入缓存表中,页面端在通过缓存表进行渲染,使用这点有个不好之处就是有个定时任务的执行时间差,关于订单业绩相关的我们任务设置的时间就短,尽量不影响使用者.所以这个时间我们需要传递查询指定时间范围内,或者是不指定时间而是指定运行前多少天的数据进行重跑处理.最终参数定义了常用的三个参数。原创 2023-12-23 20:33:43 · 206 阅读 · 0 评论 -
使用Gitee中的CI/CD来完成代码的自动部署与发布(使用内网穿透把本地电脑当作服务器使用)
使用gitee来存储代码,我们修改或者增加新功能时,就不需要把本地的jar编译好上传服务器,直接使用CI/CD来完成部署,里面已经支持Maven的构建与上传到远程服务器上完成项目的部署。这一次的记录,不需要你们买服务器,虽说服务器新用户一年也就八九十块钱,但是我们也可以不花钱学会,因为我打算使用本地电脑虚拟机新建一个Linux,然后搭配免费的内外穿透工具来完成本次的教学Cpolar官网下载,Linux版本我们去下载Linux版本可以看官网已经列举出来Linux的安装步骤。原创 2023-12-21 23:03:57 · 2086 阅读 · 1 评论 -
Nacos入门到运行-超详细~windwos
Nacos:正如官网说的,一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。官方手册SpringCloud Netflix 早期都是使用该架构.Spring Cloud Alibaba 后来Alibaba 的社区不断完善,又背靠阿里系技术实力强悍导致其受到开发者的欢迎.原创 2023-11-11 21:38:26 · 559 阅读 · 0 评论 -
使用Maven创建父子工程
正常通过该方式进行创建子项目的情况我们是不需要在父pom.xml中添加子模块的,因为idea的maven会自动给我们配置好信息.打包方式使用pom父工程本身不会被打包成可执行的JAR或WAR文件,而是作为一个用于管理和配置子模块的上层项目存在。到这父工程创建子工程就结束了,后续案例可能会使用这个工程接着往下面写案例。因为我们需要设置这个工程为父工程所以不需要src下的所有文件。配置子项目的项目名称等信息,这里需要注意的是多了个父项选择。在父工程上右键出现选择点击新建->新模块。使用上面步骤创建认证模块。原创 2023-09-06 13:10:33 · 869 阅读 · 0 评论 -
淘宝订单拉取更新历史状态~需求
对应的数据结构了.这样我们就可以直接通过订单id获取到对应的TaobaoOrder对象,就不需要单独在用订单id去查询一遍库,判断状态是什么值时对订单做对应的处理了.标识判断该时间断是否还有下一页数据,直到该值数据为false时,表面该时间范围内的订单数据获取完成.拉取完成后需要对数据库中订单状态进行更新或者新增订单信息到数据库中,我们可以通过。可以看出通过上面配置的拿到的返回值和我们预期的对象不一致.这个时候就需要在xml的方法上添加。子订单号唯一去查询数据库已经存在的订单返回,数据库返回的格式。原创 2023-07-09 11:28:36 · 915 阅读 · 0 评论 -
【企业微信机器人】发送网络图片到指定群聊
发送网络图片到群聊核心代码。原创 2023-06-16 00:06:26 · 1174 阅读 · 0 评论 -
Java线程池ThreadPool来提高效率~模拟视频下载
使用线程池ThreadPool来提高效率,如本项目中模拟多线程下载视频和单线程下载视频所使用的时间消耗长短。之前写了个抖音视频下载由于每一次,搜索出来的视频都不一样导致下载视频的大小也不一致这样就没办法比较多线程和单线程的效率, 所以这一次在下载方法里面采用睡眠当前线程的方式模拟视频下载。原创 2023-04-01 23:40:38 · 286 阅读 · 0 评论 -
Java【全局异常】无法捕获【环绕通知】
在环绕通知里面不要使用try/catch而是直接抛出错误,这样全局异常就可以正常捕获到,但是还是会有问题,比如说抛出后,后置通知和最终通知就不能生效了。展示日志环绕的切面,其实看到这里也应该知道,try里面的报错的代码会catch掉所以代码正常运行了,并没有被我们的全局异常捕获到。接口 由于try/catch 指打印了错误信息,后置通知也正常走完。在系统中自定义了全局异常处理器,无法捕获异常源。通过返回值可以快速知道错误的代码在那个位置上。请求接口中添加异常,并且在其中的接口中添加。原创 2023-03-22 23:05:38 · 1394 阅读 · 1 评论 -
Web应用出现异常,你一定会使用到的全局异常捕获
我们通常会定义一个类用于表示出现该错误是由于什么导致的,我们在编写业务逻辑的时候会对不满足,并且会影响后续代码运行的地方手动把错误抛出。由于我们是判断被除数传递的是0才会被我们的异常捕获抛出,现在有些人他传递的数据是0.0那么我们捕获的就进不去拉。又因为我们在异常中获取堆栈的信息把发送错误的异常类和报错的行数返回出来,这样开发就可以快速找到问题出现的所在。由上面提示的错误我们可以找到错误的代码行数,并且通过返回的错误信息知道是格式化异常。调用接口,可以看出已经被我们的异常方法捕获到了。原创 2023-02-07 21:15:00 · 881 阅读 · 0 评论 -
传递的日期转成周几,星期几~代码超短超简单
传递日期对象返回指定日期是星期几,1表示周日,2表示周一。:把指定时间按照特定格式转换成Date对象。使用hutool Api。pom.xml添加坐标。原创 2023-02-06 17:36:30 · 3847 阅读 · 0 评论 -
Spring的AOP切面应用对【后台对接口增强】
我们写一个方法时如果每个接口都需要写一段固定的代码时,我们可以考虑使用切面(AOP)对方法进行增强,这些增强的方法称为连接点。好比我现在有个接口是用于提交数据或者对数据进行修改,这个时候如果发现数据有问题是不是应该进行排查,如果是直接打印日志的方式不是开发的同学就没办法判断为什么会产生错误数据,一般后台系统都有张表是用于记录用户操作数据的,这样我们就可以通过提交的数据进行排查为什么会产生错误数据,还有一个就是对数据进行操作产生问题追究职责的看是那个后台用户进行操作的。原创 2022-12-18 12:36:07 · 825 阅读 · 0 评论 -
教你如何购买服务器部署自己的项目
通过地址访问购买链接新用户最近有活动只需要38元就可以买一台1核2G云服务器,初学者用这个也足够了,但是我准备买2核4g内存的服务器,之后可以把好的项目部署在上面用于学习,和研究由于之前已经买过一台同配置的服务器只不过操作系统是windows的,这一次想搞个Linux的环境用于开发,现在开始购买吧!至于服务器的地址看自己喜好,镜像我使用CentOS7.6版本的购买时长选择三年,只需要222元,之前买的服务器也是因为有活动才买的,买了4年当时上一年一百多4年去了450多块钱,这一次的力度比之前高.原创 2022-12-11 12:21:50 · 1953 阅读 · 0 评论 -
SpringBoot如何在IDEA启动多次完成(负载均衡)
我们在开发过程中会遇到需要使用Ribbon负载均衡,需要使用一个项目启动多次,来模拟负载均衡的环境,在IDEA中我可以通过右键复制所需要的项目。最后一步,找到复制的原工程把端口号更改为其他端口号(例如:8089),反正不能有已经使用的端口号。设置复制项目的名称,和去掉勾选处的打钩,点击ok。在运行复制的工程,可以发现端口号已经改变。原创 2022-12-11 12:18:41 · 455 阅读 · 1 评论 -
Java使用split分割无效,获取不到预期效果看过来
查看该方法的源码可以发现,方法参数是正则表达式,匹配符合此字符串进行拆分成数组,并且源码也说明不能以单个字符传递以下。(1)单字符字符串,且该字符不是正则表达式的元字符之一。(2)双字符字符串,第一个字符是反斜杠,第二个不是。代码比较简单写个main方法运行后就可以看到效果。方法分割字符串得到数组信息获取不到的问题。只要这2个条件不满足那么就不会走正则模式。答案已经在表格里面了要使用正则的字符需要。那就意味着我今天使用的是。也没法得到我需要预期的效果。一个单字符去进行匹配。我们简单的验证下使用。原创 2022-10-09 14:03:48 · 1491 阅读 · 0 评论 -
Java程序保存文件时,不允许包含以下内容【 \ \ / : * ? “ <>| 】
使用程序对网络视频进行下载,通常他们的标题可能都会含有windows文件名称不允许的符号,正是如此,一开始还没有意识到这个问题,开始爬取数据才发现程序报错了文件名、目录名或卷标语法不正确。这时我才想起来这个问题…那既然这样我们就开始修改代码使用字符串的replaceAll方法,由于用该方法给定的替换值可以是正则表达式,用于匹配的每个子字符串,替换视频中的违规符号,由于我对正则公式又不太熟,毕竟怎么多东西要学习,小脑袋瓜子记不下那么多,记了也会忘下一次什么时候可以用的上呢~偷笑。原创 2022-09-08 12:32:59 · 1479 阅读 · 0 评论 -
猿创征文|【简单】微信公众号推送教程 ·可直接下载运行 ·超详细
前段时间,写的【全网最简单】给朋友- 制作,微信公众号推送教程,没有添加下载程序的地址,这一次为对程序进行升级了,然后以小白的视角来从新配置软件并且内置定时器,只要程序在运行那么每天8点都会推送消息给女朋友或者小伙伴们推送天气情况,也可以根据自己的需求配置模板.升级版本注意:如图中的约会指数图标在公众号那边显示就会有写问题,到时候你们添加模板的时候自己测试下。原创 2022-09-05 14:02:26 · 1601 阅读 · 34 评论 -
猿创征文|Java计算【生日工具类】看这篇就够了
前段时间,写的【全网最简单】给朋友- 制作,微信公众号推送教程,实现好友日期推算出离生日还有多少天。使用工具类的方法有format,parse,between这三个方法。format:根据特定格式格式化日期参数一:被格式化的日期参数二:日期格式,例如yyyy-MM-ddparse作用:将特定格式的日期转换为Date对象参数一:特定格式的日期参数二:格式,例如yyyy-MM-ddbe,tween作用:判断两个日期相差的时长,只保留绝对值参数一: 起始日期参数二: 结束日期参数三。原创 2022-09-03 13:46:01 · 3012 阅读 · 1 评论 -
猿创征文|使用Spring Data Elasticsearch操作ES
Spring Data 的另一个强大功能,是根据方法名称自动实现功能。都不需要写实现代码就可以得到想要的值,但是方法命名需要按照以下格式命名才行!详细见官方文档接下来我们来对价格区间进行查询回到接口中创建方法/*** 查询价格区间商品* @return*/测试类添加方法/*** 查询自定义数据*/@Test}运行结果虽然已经比较强大了,但是关于复杂查询(模糊、通配符、词条查询等)可能用起来就不太行了,所以后面用一些原生的查询解决添加测试代码/*** 自定义查询。...原创 2022-08-31 22:28:07 · 919 阅读 · 1 评论 -
【全网最简单】给朋友- 制作,微信公众号推送教程
前段时间,抖音非常火的微信公众号推送天气,生日,祝福等信息给女朋友专属推送,而且大部分都是Python写的,对于我来说,必须得整起,上java版本,到时候打个包,在由java环境的windows直接配置yml实现自己的专属公众号推送啦Notepad++也可以使用记事本但是不直观就是打开文件进行修改主要修改2个地方:1.自己的测试公众号ID2.发送给朋友的微信信息配置templateId:指的是你们自己的模板id。...原创 2022-08-28 17:17:25 · 4471 阅读 · 3 评论 -
【SpringBoot】yml配置集合,集合自定义对象,Map结构数据获取
SpringBoot的yml文件,想必大家应该都知道,里面配置了程序的配置文件,好多时候我们会在该文件配置一些我们自己的参数以键值对的方式定义,现在我打包成jar包后我们可以在jar包同级目录添加那么程序就会使用我们创建的配置信息,如果我们需要配置集合应该如何设置,并且我们还存在,集合里面是我们自定义的类又该如何获取呢?如果有个需求:现在要定时把库存信息请求到第三方平台中,这个时候我们就需要调用第三方接口回传库存信息等SpringBoot使用Scheduled定时任务时需要在注解类中添加。...原创 2022-08-28 12:14:37 · 10024 阅读 · 0 评论 -
内网穿透到公网,让你的小伙伴访问你本地的项目
内网映射到公网想必大家应该都知道啥意思吧!由于我们自己的网络环境是局域网,同一个局域网的设备可以相互访问,前提是关闭了防火墙哦,现在我们的项目部署在本地只能局域网的设备可以访问到,那如何给朋友装B呢?辛辛苦苦写的项目没办法给朋友访问到,说再多这个功能怎么怎么样,还不如让他直接访问你项目来的直接。......原创 2022-08-25 22:52:19 · 7851 阅读 · 11 评论 -
Java集合列表,对集合中某个字段判断是否存在
经常我们都会对List集合中的元素进行操作,并且List集合允许存储相同的值,不像Map会对重复元素进行覆盖,可能我们会使用for循环进行遍历集合在判断元素是否相等,我们我们可以使用集合中的stream流中的filter过滤相等的值。...原创 2022-08-18 17:45:38 · 3476 阅读 · 0 评论 -
IDEA远程连接服务器Java程序进行断点调试(对Docker中Tomcat容器,jar,Tomcat的远程调试看这篇就够了)
对于本地项目测试没问题,发布线上各种奇奇怪怪的问题接踵而来,对此开发同学心里有何感想,跟老板battle还是默默查原因,苦逼的你只能加班解决问题,也不知道是请求方导致的问题还是程序自身的原因,接下来就对Idea调试怎么调试线上程序展开讲解。......原创 2022-08-07 14:53:44 · 3578 阅读 · 4 评论 -
Spring Boot 改造成 War部署Tomcat
由于SpringBoot通常打包方式为Jar,另一种是打包成 war 包放到 Tomcat 服务器下运行,由于我写的远程调试线上服务文章中,有使用到Tomcat打包成war包部署测试,而正好我这个项目是SpringBoot的所以就想出一篇SpringBoot打包成war包的方式。......原创 2022-08-07 14:40:49 · 473 阅读 · 0 评论 -
Linux安装Tomcat配置8.5入门教程
前提是当前linux的ip可以和本机ip可以ping 的通,并且放行8080端口。进入bin目录下通过./startup.sh运行tomcat。我现在需要把这个tomcat的端口外网访问时使用8087为例。通过工具把tomcat包上传到linux中。创建目录用于存放上传的tomcat包。进入tomcat目录后在进入。保存后在重新启动并且,要把。...原创 2022-08-07 11:31:38 · 934 阅读 · 0 评论 -
线上linux,服务突然不可用(引出Docker文件查找与删除)
由于我们的服务依赖Redis,对一些操作会Redis中插入数据和读取数据。当程序在创建订单ID时会对Redis中值插入集合数据并且返回插入集合的下标,拼接完成的ID作为订单号,还有一些其他功能也要使用到Redis这里就不细讲了,所以当时,我就发现问题所在直接查看Docker中Rdeis的运行日志查看容器指定日期运行日志并且实时输出日志docker logs - f - t -- since = "2022-07-21" -- tail = 10 容器idRedis中插入数据时出现错误信息意思就是。...原创 2022-08-06 14:52:00 · 302 阅读 · 0 评论 -
获取前多少天,多少小时并且格式日期,看一遍就会
通常我们对接电商平台,调用一些接口获取数据,平台都会要求调用方传递时间进行查询,有可能是传递一段时间的时间毫秒值或者像下图传递年月日时分秒的范围数据进行查询更多时间上的前或后都可以很好的用Calendar来解决,还有更多获取方式评论区探讨。原创 2022-07-10 17:53:25 · 625 阅读 · 1 评论 -
Mybatis的resultMap映射,手快出现的问题
📣文章目录问题:情景复现:解决方式问题:今天通过Mybatis的ResultMap做实体类与数据库表做映射出现的问题,提示我images没有找到解析器 Caused by: java.lang.IllegalStateException: No typehandler found for property images情景复现:实体类的名称:images数组类型的mapper.xml运行提示错误先卖个关子,第一眼看过去你能不能发现其中的问题所在,如果可以代表你足够细心,可洞察一切,原创 2022-05-22 16:48:14 · 635 阅读 · 0 评论 -
WMS仓库商品预警需求分析(附代码解析)
预警需求预警需求分析前端界面需要设置商品的预警天数后端保存预警天数数据库有字段存放商品需要预警的天数通过定时器运行指点方法算出对应那些商品的批次存低于设置的预警天数查询出来在wms首页展出代码实现对于前端界面的开发不做过多的代码分析,本次重点展示商品预警实现思路!!数据库用到到字段会截取出来,便于理解!商品表数据:预警表数据:批次商品表:批次商品表中添加预警字段:后续查询对应的预警信息作为标志Mysql使用到的函数//查询当前时间select now();//获原创 2022-04-14 19:30:00 · 3295 阅读 · 8 评论 -
项目出现Zero date value prohibited错误
📣文章目录问题:情景复现:解决方式后台解决问题:Zero date value prohibited; nested exception is java.sql.SQLException: Zero date value prohibited情景复现:前端发送请求到后端接口出现错误解决方式问题出在数据库查询数据的字段数是Date类型,然后插入的数据又是以0000-00-00导致解析出现的问题后台解决在连接数据库中url添加一下参数zeroDateTimeBehavior=CONV原创 2022-04-08 12:10:06 · 1126 阅读 · 0 评论 -
前端:接收后端数据出现精度丢失-多种解决方式
📣文章目录问题:情景复现:解决方式1.前端解决2.后端解决注意:问题:发送Ajax请求,请求后端接口创建订单并且返回订单号出现订单号精度丢失的情况情景复现:前端发送请求到后端接口我们前端打印订单号到控制台查看,前端返回订单号:1510826214531666000查看数据库订单号:1510826214531665920比较2个单号区别可以明显看出后面几位数据丢失,这样就存在一个问题,我前端通过该订单号无法获取到正确的订单数据,就会出现订单已经保存成功但是查询不到的问题解决方式原创 2022-04-04 12:34:34 · 14563 阅读 · 3 评论 -
Feign由于调用服务出现超时导致的问题
1.起因 通过FeignClient指定服务名称,在从eureka获取一个服务的实例ip和端口,来调用某个接口获取数据出现,超时的情况!在调用spu/page接口出现超时的情况feign.RetryableException: Read timed out executing GET http://item-service/spu/page?page=1&rows=100设置Feign的配置接口@FeignClient("it原创 2022-03-05 13:30:39 · 14625 阅读 · 6 评论 -
Linux安装Elasticsearch(手把手入门教程及下载资源)
linux对ES安装可能遇到的问题,以及Kibana图形界面对ES的操作,以及ES的一些基础用法展示,对刚开始接触ES的你,提供了网址使用到的安装包信息原创 2022-02-20 16:02:42 · 9444 阅读 · 5 评论 -
SpringBoot整合Rabbitmq(入门教程)分别对Direct,Topic,Fanout模式进行代码测试
本次入门是在原先创建的SpringBoot基础上添加可以点击此处查看1.项目结构分析pom.xml添加RabbitMq依赖文件 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-amqp</artifactId> <!-- &原创 2021-12-22 16:57:57 · 1508 阅读 · 0 评论 -
使用Swagger给项目添加在线文档
1.Swagger的作用:呈现您的 API 规范并与您的 API 进行交互,同时可以对其进行定义,修改了什么对应的文档也会发送改变,可以通过Swagger把SpringMvc对外的接口通过注解的方式添加到SwaggerUI中对之前的项目添加swagger文档界面UI,可以直接通过UI发送对应接口的请求,这样以后项目可以通过接口和其他程序交互,这样对方的技术就知道怎么对接,本质上就是开发接口2.添加Swagger坐标对pom.xml中添加Swagger的maven坐标 <!原创 2021-12-13 15:02:16 · 3015 阅读 · 0 评论 -
Java反射机制完成需求
1.什么是反射反射就是把Java类中的各个成分映射成一个个的Java对象。即在运行状态中,对于任意一个类,都能够知道这个类的所以属性和方法;对于任意一个对象,都能调用它的任意一个方法和属性。这种动态获取信息及动态调用对象方法的功能叫Java的反射机制。2.反射的作用我们通过案例来了解,反射的作用,都说实践出真理,操作一遍理解更深刻。案例:对集合数组进行拆分批量调用持久层对象进行批量插入,当使用的类只有一个的时候可能简单写法,不用反射会更简单,都是我可能有多个类,类的方法可能有批量删除,批量插入,原创 2021-12-08 15:20:35 · 436 阅读 · 0 评论 -
SpringBoot图片上传回调访问地址
目录1.配置上传文件的大小2.项目结构:3.使用Nginx代理本地文件4.使用工具来测试结果项目的一些初始配置请查看做一个文件上传的小案例,使用的还是之前的demo项目,我希望我每次想到一些突发奇想的一些功能都往这个deno上增加,这样万一那天demo就真成了一个小项目,所以把demo目录都更改成了itemi看上去至少不是那么low.目前都还涉及到前端,只完成后端部分的编写!1.配置上传文件的大小非常的简单在application.yml配置中添加spring: servlet: #设置上传原创 2021-12-07 19:30:00 · 511 阅读 · 0 评论 -
跨域:如何解决浏览器跨域的问题(后端实现)
目录1.为什么会产生跨域问题2.常见的跨域解决方案3.使用CORS解决跨域问题4.代码实现CORS1.为什么会产生跨域问题跨域的几种情况例如域名不同taobao.com与zhihu.com域名相同,端口不同taobao.com:80与taobao.com:8080二级域名不同a.taobao.com与b.taobao.com请求协议不同Https与Http当请求的域名和端口都一样,但是请求路径不同,不属于跨域问题!!!taobao.com/items原创 2021-12-05 13:36:25 · 2690 阅读 · 0 评论 -
SpringBoot创建项目内网穿透过程在到jar包本地运行小案例
重新创建项目设置项目基础配置]勾选自己需要的依赖,本次项目中需要涉及到web开发,后续需要可以通过引入maven坐标来引用依赖配置项目的名称和保存项目路径进来后发现类是这样的不要慌点击maven让他加载相关依赖包等个几分钟就好如果引入的依赖比较多,那么下载的时间就会比较久,等就完事!!!加载完成后就正常了使用springboot的好处是帮助开发者快速的搭建Spring框架把配置文件后缀修改成yml本质上没什么区别使用.yml :创建的配置以空格的缩进程度来控制层级关原创 2021-12-03 13:49:30 · 2905 阅读 · 0 评论