自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 资源 (8)
  • 收藏
  • 关注

原创 工厂模式-策略工厂模式 两者的区别

模拟支付分为 微信支付 ,支付宝支付,银联支付。工厂模式和策略工厂模式

2024-01-26 15:55:52 473 1

原创 mysql连接报错com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure

这个问题困扰我好久,没想到是这个问题,由于这个pom是直接从其他项目复制的,根本没想到这个问题。今天出现一个很奇怪的问题,启动项目连接mysql没有任何报错,但是查询语句就报错如下。这里首先我是检查了url是否正确,我换成了mysql自带的驱动。这时候去百度了好久怀疑是不是mysql的版本问题。这时候发现我得pom是8.0.30。yml的配置排查,yml配置如下。按照这个报错在网上查了很久。其中jdbc的放在了dev中。一查发现我的mysql版本是。换成自带的是能正常查询。这里就排查url的问题。

2023-08-18 11:31:13 3879 1

原创 java解决mysql大数据联查问题

后来想到了使用map利用这三个字段作为key去查,查询结果很快,大概几秒内就查出来了,由于这次是一个数据比对导出,不涉及到上线业务,所以就没有进行进一步的优化。但是表a和表b的数据量都很不小,大概在10w左右,由于并不是以固定的id去关联,加了索引也没有效果,使用navicate根本就查不出来。总之上面的代码仅作为简单的操作,还有一些逻辑都没校验,也可以进行优化,重点就是使用map的key,value进行操作比对。这时候想到了使用java去查,一开始采用的是双重for去比对,但是导致内存溢出根本差不出来。

2023-08-17 17:09:23 1339

原创 poi导入导出

poi的简单使用,包括导入参数校验,导出的有批注的excel

2022-08-12 14:05:07 2556 1

原创 sringboot整合rabbitmq

生产者(Producer)产生数据发送消息的程序是生产者交换机(Exchangs)交换机是 RabbitMQ 非常重要的一个部件,一方面它接收来自生产者的消息,另一方面它将消息推送到队列中。交换机必须确切知道如何处理它接收到的消息,是将这些消息推送到特定队列还是推送到多个队列,亦或者是把消息丢弃,这个得有交换机类型决定队列(Queue)队列是 RabbitMQ 内部使用的一种数据结构,尽管消息流经 RabbitMQ 和应用程序,但它们只能存储在队列中。队列仅受主机的内存和磁盘限制的约束,本质上是一个大

2022-06-07 14:14:26 302

原创 微信支付java

微信支付场景:需要微信支付完成业务流程,首先商户申请了微信支付商户端的认证,然后我们就可以拿到关键的参数:mchId,mchKey,appid。商户使用微信支付的条件首先看一下微信的官方文档:微信支付文档这里使用的是JSAPI支付方式。JSAPI支付是指商户通过调用微信支付提供的JSAPI接口,在支付场景中调起微信支付模块完成收款。商户系统先调用该接口在微信支付服务后台生成预支付交易单,返回正确的预支付交易会话标识后再按Native、JSAPI、APP等不同场景生成交易串调起支付。1.配置项

2022-05-11 17:01:23 1138

原创 二维码和条形码生成

二维码和条形码生成前言之前说了微信小程序生成微信小程序码,现在说一下普通的二维码的生成。(这些都是亲测,都可以使用)导入依赖(maven) <!--Zxing 条形码二维码生成和解析工具--> <dependency> <groupId>com.google.zxing</groupId> <artifactId>core</artifactId>

2022-05-05 17:33:33 2654

原创 微信生成外部链接

微信生成外部链接一、前期准备工作微信官方文档注意:获取小程序 URL Link,适用于短信、邮件、网页、微信内等拉起小程序的业务场景。通过该接口,可以选择生成到期失效和永久有效的小程序链接,有数量限制,目前仅针对国内非个人主体的小程序开放,详见获取 URL LinkHTTPS调用请求地址:POST https://api.weixin.qq.com/wxa/generate_urllink?access_token=ACCESS_TOKEN1.导入微信小程序包依赖(pom中配置)

2022-02-28 17:33:51 3483

原创 微信订阅消息(后端)教程

微信订阅消息(后端)一、订阅消息流程注意:目前微信这边只支持一次性订阅,就是同意几次发送几次,永久性订阅目前只支持一些政府,医疗等行业。所以我们做不到一次订阅就可以一直发消息,需要每次订阅发一次。但是前端支持一次订阅三个不同的模板id,这样就可以做到一次订阅可以发三次(不同模板id的消息)消息。所以这个订阅消息,对于后端来说就只是调用微信的接口,发送消息就可以了,重点还是在前端去考虑如何在合适的地点去吊起弹窗,去上用户进行授权。二、获取模板id首先登录微信公众平台,作为开发者,你可以去选取订阅

2022-02-23 11:32:39 5007 4

原创 钉钉发送消息(非群机器人)

钉钉发送工作消息不是群机器人

2022-02-21 17:12:13 1808

原创 java异常处理,@valid处理异常

异常处理一、处理自定义异常首先定义一个错误码的处理的枚举类import lombok.Getter;/** * <p> * 业务错误码 * </p> */@Getterpublic enum ErrorCode { /** * 业务错误码 */ ACCOUNT_NOTFOUND(1001, "用户不存在"), UNAUTHORIZED(401, "当前未登录或登录已过期,请重新登录") //

2022-01-17 15:06:12 286

原创 Mysql学习笔记

Mysql学习sql语句的学习,mysql从入门到精通

2021-12-23 16:16:45 511

原创 Spring5学习笔记

spring51.核心 IOC AOP(1) IOC: 控制反转,把创建对象过程交给 Spring 进行管理1.IOC 的底层原理概念:控制反转(Inversion of Control,缩写为IoC),是面向对象编程中的一种设计原则,可以用来减低计算机代码之间的耦合度。其中最常见的方式叫做依赖注入(Dependency Injection,简称DI),还有一种方式叫“依赖查找”(Dependency Lookup)。*通过控制反转,对象在被创建的时候,由一个调控系统内所有对象的外界实体将其

2021-12-02 14:35:00 103

原创 rabbitmq的延迟队列和死信队列

一、延迟队列和死信队列死信队列:元素产生后没及时的被消费,一直存放在队列中。延迟队列:延时队列,队列内部是有顺序的,其最重要的特性是延迟时间,是希望在指定时间到了以后或之前取出和处理,类似一个定时任务,但是比定时任务要节省资源。延时队列其实就是特殊的死信队列。但是队列的特点是先进先出,如果对应不同的元素有不同的时间,那么如果存在延迟时间小的元素在延迟时间大的元素之后,那么就达不到对应的效果。如何实现类似定时任务的效果呢?就是当消息被发送以后,并不想让消费者立即拿到消息,而是等待指定时间后

2021-11-01 09:39:19 6111

原创 springboot整合rabbitmq

目录一、rabbitmq的相关概念概念说明:二、相关步骤(整合springbbot)三、具体实现和对应的原理1、配置rabbitmq的文件2、配置configuration文件,配置连接3、创建exchange4、创建队列5、绑定队列和exchange6、创建生产者7、创建消费者8、完成消费四、延迟队列和死信队列一、rabbitmq的相关概念RabbitMQ是流行的开源消息队列系统,用erlang语言开发。RabbitMQ是 AMQP(高...

2021-10-28 16:30:20 1115

转载 查看linux的防火墙状态

查看linux防火墙的状态如有需要可以加我Q群【308742428】大家一起讨论技术,有偿服务。后面会不定时为大家更新文章,敬请期待。喜欢的朋友可以关注下。iptables防火墙1、基本操作# 查看防火墙状态service iptables status# 停止防火墙service iptables stop# 启动防火墙service iptables start# 重启防火墙service iptables restart# 永久关闭防...

2021-10-25 14:43:26 3380

原创 java8 的stream流

通过stream借助lamda表达式对集合collection进行操作(筛选、排序、聚合等)

2021-10-19 13:14:25 766

原创 记一次SpringBoot整合redis改不了database问题

关于学习redis写的yaml文件,里面的redis: database: 15 host: 127.0.0.1 port: 6379 password: timeout: 3000ms # 连接超时时间(毫秒)但是springboot自动装配一直是database为0最后发现是没有找到我配置的redis,默认是用的自动装配的默认地址(所以我一直以为我的yaml写对了,但是没用写对,因为一直没有取到我的值)自动装配的就是database=0,port=6379;..

2021-09-09 17:52:22 1617 1

原创 Mybatis自动生成代码

如下代码支持表_*全局生成。重点是strategyConfig.setTablePrefix("t_");这个如果不写的话,默认是按照表的名字生成的。比如表名为t_mytest生成的类为 TMytest。主要配置前面的路径就可以决定代码生成在那里。前提必须引入必要的依赖。<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok&

2021-08-26 14:55:29 440

原创 微信二维码的生成(java后端)--邀请新人

目录写在前言1.微信官方文档2.具体分析写在前言最近因为在学习微信小程序邀请新用户的功能,所以需要后端生成二维码并且携带本人的用户id或者其他的信息,传给前端。用户通过这个二维码去进行登录或者其他的操作,这时候前端人员记录下来邀请人的用户id和被邀请人的用户id传给后端。这哥功能首先就需要生成微信二维码,那么下面就是我的学习过程。1.微信官方文档首先需要查看微信的官方文档去确定这个微信二维码到底需要什么接口。你必须知道,这个二维码的生成条件有①小程序已经发布成功②

2021-08-12 15:31:56 7024 1

原创 用户登录的详细流程(三)Shiro框架

用户登录的详细流程(三)Shiro框架

2021-07-13 14:59:02 994

原创 用户登录的详细流程(二)JWT生成token登录

JWT生成token登录1.jwt的构成(1)header(2)payload(3)signature2.token的登陆原理3.在实际中如何应用token(1)设置token的生成代码(2)如何从token中获取有用的信息(3)验证token(4)实践得到的结果4.附录(1)创建token所用的源码(2)获取token信息的源码1.JWT的构成header(头部) payload(载荷) signature(签名)(1)header 承接两部分信息声明类型: jwt声明

2021-07-08 10:35:10 7600

转载 mysql8.0以上初始化以及忘记密码的方法

Mysql8.0以上忘记初始密码时重置的方法 摘要第一步:关闭Mysql服务第二步:跳过Mysql密码验证第三步:无密码方式进入Mysql第四步:将登陆密码设置为空第五步:更改自己的登陆密码 最后一步:验证密码是否修改成功 摘要 网上大部分的方法都是通过在My.i...

2021-07-05 14:35:33 2629 5

原创 如何生成jar包并把传到linux系统中

如何生成jar包并把传到linux系统中1.首先保证代码是最新的,在idea中拉好代码。一般在右上角有个拉代码的。2.点开右侧边的maven,找到profiles,把环境改好。3.找到后面带有root的包,点开,点击clean,然后点击install。4.在自己项目的启动类下找到target,找到自己的jar包。5.找到jar所在的本地位置。6.使用xshell和xftp上传到linux系统中。(百度搜一下就可以了,重点是如何连上服务器)...

2021-06-24 13:21:39 1450

转载 GET和POST两种基本请求方法的区别

**GET和POST两种基本请求方法的区别**GET和POST是HTTP请求的两种基本方法,要说它们的区别,接触过WEB开发的人都能说出一二。最直观的区别就是GET把参数包含在URL中,POST通过request body传递参数。你可能自己写过无数个GET和POST请求,或者已经看过很多权威网站总结出的他们的区别,你非常清楚知道什么时候该用什么。当你在面试中被问到这个问题,你的内心充满了自信和喜悦。你轻轻松松的给出了一个“标准答案”:GET在浏览器回退时是无害的,而POST会再次提交请求。

2021-06-22 13:55:27 78

原创 后端使用postman进行测试

后端使用postman软件测试注意的问题1.根据controller层来决定传参类型常见的controller层的注解@RequestParm(value="",required=true,defaultValue= )value=" " 是自定义参数名称,可以不写,但是传参时必须和后面的参数名一致。required 表示是否必须传该参数,如果不写默认是true,如果不传就会报404。如果设置成false,就可以不传。defaultValue是默认值选项,如果传参时null,就会把该值赋给该参数

2021-06-22 13:51:38 1250

原创 用户登录的详细流程(一)

**用户登录的详细流程****1.流程概述**(1)首先在进行用户登录的时候,要进行一些必要的准备工作。比如说要对用户登录表进行设计。一般是userId,userName,phone,password,salt,remark等等。通常数据库存储的密码是md5进行加密的密文,但也不能直接对登录密码进行md5加密,然后存在数据库中。这样的密文用浏览器上的解密工具很容易就被破解了。一般是用加密盐salt和用户的密码一起加密,而这个salt本质上是随机数。同样也需要设置加密规则,是怎么加密,是密

2021-06-21 15:35:55 10473

原创 SpringBoot的cn.hutool工具库

**SpringBoot的cn.hutool工具库----强大的工具库**1.注入依赖 <dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>5.3.6</version> </dependen

2021-06-21 10:19:07 15372 1

原创 idea中git的使用

Idea中的git的使用加载插件idea左上角setting点击进去选择plugins,在这里输入git,下载对应的插件就可以了。学会从git中获取代码然后输入对应url就可以下载了。进入idea中我们可以用左上角的快捷键进行拉代码和上传当然如果你需要把你自己修改的都删除,也可以进行。...

2021-06-18 17:40:16 128

原创 零基础学习项目的逻辑关系

零基础学习java项目的逻辑关系1.认清项目使用的工具和语言一般项目使用的语言是java、springboot、mybatis-plus、redis 。使用的工具一般是idea,需要在网上找如何对idea进行破解。因为springboot可以大大减轻各种配置,一般各个公司都有自己的框架,基本上只要看清逻辑关系,进行简单的接口书写就没问题了。2.逻辑关系的分析一般分为controller层,service层,dao层,mapper层。其中controller层就是写给前端来调用的,我们再cont

2021-06-18 16:23:32 1186 1

sringboot整合rabbitmq.md

按照mq的定义的方法去使用mq,学习mq的使用

2022-06-07

Zxing生成二维码和条形码

学习条形码的生成,让自己的学习更加快速

2022-05-11

java学习微信微信支付

springboot学习微信支付

2022-05-11

微信订阅消息,新手教程,微信

新手教程 微信订阅消息如何发布

2022-02-23

钉钉发送消息(非机器人)

1.钉钉消息发送 2.工作通知 3.适合使用那些第一次接触钉钉开发的

2022-02-21

nginx 从入门到精通.md

nginx入门笔记

2022-01-10

spring5学习.md格式,整理笔记

spring5 的整理笔记

2021-12-24

Mysql学习,sql语句的基础学习

mysql的学习笔记md格式

2021-12-23

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除