自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(133)
  • 资源 (1)
  • 收藏
  • 关注

原创 PC网站实现微信扫码登录功能(一)

现在微信的使用用户越来越多,如果网站添加上微信登录,就能节省很多用户注册时间,极大缩小了注册流程。会让用户觉得特别方便。接下来我们就说一下怎么来实现PC端微信扫码登录。一、微信开放平台账户申请网址:https://open.weixin.qq.com/首先我们要做的就是进入到微信开放平台申请一个开放平台账户进入页面以后,点击注册按钮,开始注册我们的新账户。按照要求一步一步完成注册即可。二、微信认证注册好账号以后如果想要实现扫码登录还必须要先进行认证。这个认证会收取300元认.

2021-08-19 09:32:44 15562 8

原创 Java最全面试题

这篇文章是我从gitee.com上面转载的,如果觉得不错,可以去给大佬star一下。收集这些也不容易。https://gitee.com/XuanYuanXiaoJian/java_interview_questions/blob/master/%E9%9D%A2%E8%AF%95%E7%9B%B8%E5%85%B3.txt一、Java 基础1.JDK 和 JRE 有什么区别? JDK...

2019-05-15 22:33:26 3335

原创 深入解读:BIO、NIO与IO多路复用——理解现代网络编程基石

在现代软件开发中,高效的数据交换是构建高性能网络应用的核心要素。深入理解输入输出(Input/Output,简称IO)模型的底层原理与工作机制,对于设计和实现高并发、低延迟的网络服务至关重要。本文将深度剖析阻塞式I/O(BIO)、非阻塞式I/O(NIO)以及IO多路复用(Multiplexing),揭示其设计原则、工作细节、底层机制、优缺点、适用场景以及实际应用中的挑战与优化策略。

2024-04-18 16:55:18 613

原创 centos7 安装git

4.这样配置了以后,发现每次拉取项目都要输入用户名和密码,所有搜索了一下,可以安装进行解决。这样配置完成以后只要输入一次密码后面就不用再次输入了。

2024-04-11 18:46:00 236 2

原创 Docker学习笔记

涵盖了docker安装使用 docker compose安装使用 docker监控等

2024-02-03 13:53:40 1114

原创 springboot整合之Validated参数校验

springboot整合实战 springboot整合之Validated参数校验

2023-01-03 13:22:46 3486 8

原创 为什么有的公司会禁用spring声明式事务

在之前我一直偏向于使用声明式事务,我一直觉得声明式事务比较好用。相比于编程式事务,使用声明式事务时只需要加上一个注解,spring就能够帮助我们完成所有的事务控制。反观编程式事务却需要我们自己去控制事务的提交和回滚,这种代码入侵的事务编程看起来也不是那么优雅。但是最近在和朋友聊天时发现他们公司缺禁止使用声明式事务?这是为什么呢?其实原因也很简单,虽然声明式事务方便好用,但是有一个致命的缺陷,就是一旦使用不当,很容易造成事务失效。下面这个博客里面我罗列了部分失效的情况,如果不了解的可以看一下。

2022-12-28 16:32:59 2918 3

原创 springboot整合之统一异常处理

springboot整合实战 springboot整合之统一异常处理

2022-12-27 17:17:59 5455 2

原创 springboot整合之统一结果返回

springboot整合实战 springboot整合之统一结果返回

2022-12-27 15:03:18 4473

原创 springboot整合mybatis代码快速生成

spring boot项目整合实战 springboot整合mybatis代码逆向生成

2022-12-25 17:31:59 3748 2

原创 springboot整合swagger

springboot 整合swagger 在开始之前先说一下自己的理解。我觉得既然要使用,首先就要知道为什么要用?该不该用?如果说我们的项目就俩人开发的一个小项目,又没有前后端分离,而且有比较急着上线,那我觉得这种真是没有必要用swagger。这里只是举个例子,就是告诉大家没有必要为了swagger而swagger。我认为swagger更适合前后端分离情况,或者需要协同开发给别人提供接口测试的时候使用。在这种情况下能够提高协同的效率。

2022-12-25 00:42:02 2747 1

原创 springboot整合之版本号统一管理

springboot整合实战 springboot整合之版本号统一管理。相信小伙伴们对于版本号的管理都很熟悉了,那我们在springboot中常见的版本管理有几种方式呢?

2022-12-25 00:00:56 6360

原创 springboot整合系列之如何选择版本及项目搭建

做了几年开发了,最近打算把之前积累的一些知识沉淀一下,想了一下,就先从最基础的springboot的使用开始整理吧。打算把常用的一些东西整合进来。

2022-12-15 17:47:50 20151 6

原创 centos7搭建nginx主从以及集群

nginx的主从搭建以及nginx集群的使用

2022-12-09 16:05:28 2525 2

原创 spring 事务传播行为以及失效原因

今天在查看以前写的代码时,看到了事务的使用,感觉自己对这一块并不是特别清晰,所以就系统的学习了一下。在学习过程中发现很多地方自己以前理解的还是有点不对,所以记录一下学习笔记,希望帮助到大家。备注:因为除了PROPAGATION_REQUIRES_NEW和PROPAGATION_NESTED,其他的都不是特别难以理解,所以我这里就只对这两个做了一下代码实例。当事务方法被另外一个事务方法调用时,必须指定事务应该如何传播,例如,方法可能继续在当前事务中执行,也可以开启一个新的事务,在自己的事务中执行。声明式事务

2022-12-07 17:49:32 1374

原创 springboot整合canal

mysql主从 + redis哨兵集群 + canal + 本地缓存的实现。

2022-11-29 17:54:18 2558 1

原创 ShardingSphere-JDBC读写分离

mysql主从 + redis哨兵集群 + canal + 本地缓存的实现。

2022-11-29 17:26:28 339

原创 使用docker搭建 MYSQL主从

docker 上面搭建mysql主从服务器

2022-11-29 17:20:01 1124

转载 Redis分布式锁实现Redisson 15问(面试常问)

在一个分布式系统中,由于涉及到多个实例同时对同一个资源加锁的问题,像传统的synchronized、ReentrantLock等单进程情况加锁的api就不再适用,需要使用分布式锁来保证多服务实例之间加锁的安全性。常见的分布式锁的实现方式有zookeeper和redis等。而由于redis分布式锁相对于比较简单,在实际的项目中,redis分布式锁被用于很多实际的业务场景中。

2022-10-28 18:29:32 946

原创 线程唤醒机制

unpark进行许可证的发布最多只能发布一张许可证(不会累积)。如果一个方法出现两次LockSupport.park();基于LockSupport实现,无顺序要求,可以先park也可以先unpark。底层基于UNSAFE类实现。需要在lock下使用,配合condition实现,先等待才能进行唤醒。要在synchronized锁中使用,切先等待才能进行唤醒。...

2022-07-30 17:15:28 539

原创 线程中断方法

因为volatile能保证在多线程之间,一旦变量修改,能够立马通知到其他持有该变量的线程值被改变。所以我们可以利用volatile这个特性来实现线程中断。interrupted()查询当前线程阻塞状态,并将状态设置为false。备注操作线程不能处于sleep,wait,join,不然会抛出异常。interrupt()设置线程状态为true。isInterrupt()查询当前线程阻塞状态。...

2022-07-30 16:30:01 436

原创 springboot整合springSecurity(前后端不分离版本)

1.在SecurityConfig配置类增加登陆及跳转配置@Override//登陆配置//登陆页面的路由//登陆表单提交对应的方法//表单用户名对应方法,如果不进行自定义就是默认username//表单密码对应方法,如果不进行自定义就是默认password,其实这里不配置也行,因为默认就是password//登陆成功后跳转页面//登陆失败后跳转页面,这里失败后继续跳转到登陆页面/**2.启动测试输入路径进行访问,可以看到已经跳转到我们自己定义的登陆页面。接下来我们可以进行登陆测试。...

2022-07-23 19:57:44 2108 1

原创 使用Jmeter和VisualVW进行压测准备

找到自己的jdk安装路径,在bin文件夹下面有一个jvisualvm.exe,打开以后点击“工具”--》"插件"--》“设置”,然后进行编辑,将我们复制的路径添加进去。4、新建DWORD值,nameMaxUserPort,value65534(十进制)设置最大连接数65534。进入页面后复制插件更新路径,然后到VisualVW中修改自己的插件路径。点击可用插件,勾选VisualGC点击安装,安装完成以后重启即可。2.根据版本号到插件官网查找自己的对应版本插件路径。1、打开注册表regedit。...

2022-07-23 10:15:46 342

原创 springboot整合redis + redisson

基于上一篇文章整合数据库连接池和mybatis-plus之后继续开撸,接着整合redis和redisson在我们开发中我们经常会用到分布式缓存和分布式锁。而这两个功能我们就可以使用redis和redisson来实现。

2022-07-21 22:30:04 2434

原创 springboot整合mybatis-plus+durid数据库连接池

特别说明:本次项目整合基于idea进行的,如果使用Eclipse可能操作会略有不同,不过总的来说不影响。本次项目整合基于第一篇的项目搭建,如果需要的可以参考第一篇。里面讲解了怎么进行版本选择,和基础的项目搭建。本篇主要是基于上一篇的基础上进行数据库操作的整合。其实这里有一个点我觉得有必要说一下,如果不需要开启监控功能,个人觉得没必要用Druid数据库连接池。不如直接使用磨人的Hikari,而且这个连接池不需要进行额外整合,因为springboot已经帮我们整合好了。

2022-07-17 18:38:17 5925

原创 Java8 CompletableFuture异步任务编排

在系统开发过程中我们经常会遇到很多串行化比较耗时的业务逻辑。但是很多时候如果仔细分析会发现其实很多这种串行业务部分是可以拆解为并行的。这时候我们就可以使用CompletableFuture来进行异步任务编排。举个例子假如现在有一个业务分为如下几步1.业务一耗时0.5秒2.业务二耗时0.5秒3.业务三耗时1秒4.业务四耗时0.5秒(需要用到业务一的结果)5.业务五耗时1秒(需要用到业务二或者业务三的结果)......

2022-07-15 14:42:58 1182 1

原创 springCloud微服务学习笔记-微服务框架图

一、微服务技术栈服务网关:用来作为请求的转发,将用户的请求转发到对应的微服务。这样作为调用方无需知道服务的IP以及端口号,只需要知道服务对外暴露的统一链接即可调用该服务。注册中心:为什么有注册中心呢,它的存在有什么意义呢?假如我们先不考虑这个注册中心,我们来想一下,现在有两个服务:服务A和服务B。如果服务A需要调用服务B那么按照之前最简单的方式就是直接在服务A中配置服务B的IP:端口号/url 去调用服务B。但是微服务一般会有几十个或者上百个服务要相互调用,那还是按照这样来做的话是不是就很麻烦了

2022-03-18 09:56:12 431

原创 opencv之图片处理看这一篇就够了(一)

因为最近公司项目需要用到opencv对图像进行处理,所以对这一块进行了学习,现在将自己学习到的东西记录下来,以便使用。一、图像读取与显示import cv2import numpy as np img = cv2.imread("soble.png")cv2.imshow("soble",img)cv2.waitKey(10000)但是这里有个坑,如果是中文路径,你就会发现图片读取不出来,需要换个方法#path为图片路径img_np = np.fromfile(path

2022-03-11 17:09:20 22810 2

原创 opencv图片处理之---------环境安装配置

一、python的下载安装与配置以3.9版本为例:如果没有安装的可以参照这篇博客去操作就好了。Windows系统python环境安装_极速小乌龟的博客-CSDN博客因为公司目前所做项目需要用到python,没办法了只能半路出家。还好看了一下python语法,相对于java来说比较简单,而且大致相似。工欲善其事必先利其器,第一步就是python环境的安装。搜了几篇博客,不是很难,记录一下一边后面再次安装。一、安装包下载官网下载地址:Download Python | Python.orgThe off

2022-03-10 17:58:20 3948

原创 Windows系统python环境安装

因为公司目前所做项目需要用到python,没办法了只能半路出家。还好看了一下python语法,相对于java来说比较简单,而且大致相似。工欲善其事必先利其器,第一步就是python环境的安装。搜了几篇博客,不是很难,记录一下一边后面再次安装。一、安装包下载官网下载地址:Download Python | Python.orgThe official home of the Python Programming Languagehttps://www.python.org/downloads/

2022-03-09 11:47:27 1890

原创 spring框架学习笔记--第一课底层核心原理解析

第一课底层核心原理解析自己创建的自动注入不会生效。spring Bean初始化先通过对象的构造方法初始化对象,然后给带有依赖注入的属性赋值。最终得到bean,所以spring 管理的bean 中依赖注入的属性是有值的。Bean的创建生命周期UserService.class --->无参构造方法(推断构造方法) -->对象 ---->依赖注入(属性赋值)---->初始化前(@postConstruct)---->初始

2022-01-29 14:05:30 744

原创 Java使用aspose生成简历

最近在测试通过word模板生成简历功能,搜了很多方法都是通过书签方式,要先移动到书签位置然后再进行操作,主要是书签添加起来特别麻烦。而且使用wps还添加的老是出问题。所以找了一个替换的方式。具体操作如下:首先在word中设置好样式,然后对字符串进行替换就好了。使用到的jar包 <!--aspose操作word--> <dependency> <groupId>com.aspose</group.

2021-12-17 22:18:30 1332

原创 小程序页面生成链接通过短信发送

获取小程序 URL Link,适用于短信、邮件、网页、微信内等拉起小程序的业务场景。通过该接口,可以选择生成到期失效和永久有效的小程序链接,有数量限制,目前仅针对国内非个人主体的小程序开放

2021-12-08 17:16:05 4623 2

原创 23种设计模式-简单工厂模式

一、什么是工厂模式工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。【百度百科】工厂模式是我们最常用的实例化对象模式了,是用工厂方法代替new操作的一种模式。著名的Jive论坛 ,就大量使用了工厂模式,工厂模式在Java程序系统可以说是随处可见。因为工厂模式就相当于创建实例对象的new,我们经常要根据类

2021-11-16 18:48:02 443

原创 私有云盘搭建

一、安装背景这两天在研究公司搭建私有云盘。今天终于搞定了,这这里记录一下以备后用。最初需求:产品部主管因为部门之间微信发文档比较麻烦,想直接能够放到云盘,但是又要求这个云盘能够记录修改历史,并且能够对不同人员进行权限设置,而且实现同时在线编辑。还要能够将文件下载到本地文件夹,在文件夹里面可以直接修改(有点类似于win的共享文件夹)。讲真的最开始听到觉得这种产品是不存在的,因为我觉得这是gitlab和网盘的结合品。不过有了需求技术部门就要实现啊。所以只能硬着头皮接下来了。剩下的就是开始研究...

2021-10-28 16:56:23 2787

原创 微信小程序动态样式|参数传递

<ulclass="item-list"><liwx:for="{{periodList}}"wx:for-item="period"wx:key="id"class="item{{currentPeriodId==period.id?'active':''}}"data-id="{{period.id}}"bindtap="choosePeriod">{{period.name...

2021-08-28 18:53:05 968

原创 微信小程序for循环

1.首先在js文件中data里面定义listperiodList:[ { id:1, name:'幼儿园' }, { id:2, name:'小学' }, { id:3, name:'初中' }]2.在页面中使用<view> <ul class="item-list"> <li wx:for="{{periodList}}" wx:for-item="period"

2021-08-26 13:51:56 4798

原创 docker安装seata

一、下载镜像docker pull seataio/seata-server:1.2.0二、启动容器docker run --name seata-server -p 8091:8091 -d seataio/seata-server:1.2.0三、拷贝容器文件到本地文件夹#要先创建 /home/dockerdata 目录docker cp seata-server:/seata-server /home/dockerdata/seata四、停止并删除容器docke

2021-08-19 14:44:05 3612 7

原创 PC网站实现微信扫码登录功能(二)

上篇我们介绍了怎么申请账号以及最后拿到appId和appSecret,如果有不清楚的可以看一下PC网站实现微信扫码登录功能(一)下面我就来说一下怎样在PC端怎么实现扫码登录功能。一、进入官方文档网站https://developers.weixin.qq.com/doc/oplatform/Website_App/WeChat_Login/Wechat_Login.html其实官网对过程描述的已经非常细致了。并且提供了两种扫码方式。一种是跳转二维码扫描页面,另一种是内嵌式二维码。大家可以

2021-08-19 10:40:46 27666 13

原创 Semaphore

一、简介Semaphore是在jdk1.5版本引入的,存在于juc包下面。由大佬 Doug Lea(绝对牛逼的大佬,感兴趣的可以自己百度一下) 编写。跟它一同出现的还有CountDownLatch、CyclicBarrier、concurrentHashMap和BlockingQueue。二、作用可以把它简单的理解成我们停车场入口立着的那个显示屏,每有一辆车进入停车场显示屏就会显示剩余车位减1,每有一辆车从停车场出去,显示屏上显示的剩余车辆就会加1,当显示屏上的剩余车位为0时,停车场入.

2021-07-10 17:12:57 157

aspose-pdf.zip

将pdf转换成word等各种格式

2021-02-05

空空如也

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

TA关注的人

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