自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

盛夏温暖流年

要善良,要勇敢,要像星星一样努力发光。

  • 博客(125)
  • 资源 (4)
  • 问答 (1)
  • 收藏
  • 关注

原创 智障儿童欢乐多,蹦蹦哒哒过六一:用 Python 开发连连看小游戏

我一直相信,使生活如此美丽的,是我们藏起来的真诚和童心。六一节快到了,520可以不过,但是儿童节绝对不能错过,毕竟谁还不是个几百个月的宝宝了,而且凭借自身智商,过这个节完全不成问题,哈哈哈哈哈。

2021-06-01 10:37:59 2347 20

原创 【扫盲科普篇】SpringCloud 框架介绍和核心组件详解

1.微服务框架; 2.SpringCloud 是什么 3. SpringCloud 组件概览 4.SpringCloud 核心组件详解; 5. 实际场景案例;

2021-05-27 09:15:53 6752 3

原创 插件测评:体验最新版 CSDN 浏览器助手,希望能够一起变得更好

突然有那么一天,发现腾讯位置服务大赛活动的参赛人数超级少(后来事实证明是统计有BUG,哈哈哈),然后奖品里面还有无人机,这个中奖概率可比买彩票高多了!贫穷让人失了智,于是立马就去参加了。就这样连位置服务是啥都不清楚,现学现买写了博客,抱着纯粹凑热闹的心态去了,意料之外居然拿奖了。开开心心把无人机卖掉换成了人民币后,就开始对参加各种活动异常上心了,哈哈哈哈哈哈。

2021-05-25 16:23:36 1118 8

原创 心情不好的时候,用 Python 画棵樱花树送给自己吧

最近发生了很多事情,工作不开心,爱情无果而终,身边的小伙伴陆陆续续离职。虽然都不是会一下子击垮自己的事情,但是积攒起来,还是会有突然感到疲惫和倦怠的时候,有一种不知道下一步要走向哪里的无力感。在这个城市留下了很多的回忆,但是身边的人一个个离开,走到现在,似乎没有太多留恋的了,也没想好未来要去哪里。自己是一个始终需要新鲜感的人,在这里停留了太久,大概到了该说再见的时候了吧。

2021-05-24 15:10:34 496402 535

原创 我的 Serverless 实战 — Serverless 腾讯云文字识别(OCR)详细部署过程

通过 Serverless Framework Component 和 OCR SDK, 我们能够快速部署一个基于 COS + API + SCF 的通用文字识别 OCR 应用,在部署之前,先来了解一下什么是 OCR。OCR 技术OCR(Optical Character Recognition,光学字符识别)是指电子设备(例如扫描仪或数码相机)检查纸上打印的字符,通过检测暗、亮的模式确定其形状,然后用字符识别方法将形状翻译成计算机文字的过程。即,针对印刷体字符,采用光学的方式将纸质文档中的文字转换成

2021-05-12 22:25:15 1266 6

原创 【MySQL】双主双从 + 多源复制架构分析和部署

本文主要介绍 MySQL 数据库的双主双从架构, 其中主从同步采用多源复制的机制。一. 数据库架构介绍本次搭建的 MySQL 数据库架构图如下所示:其中,master1 和 master2 是两台主库,负责数据增删改操作。这两台主库的主从关系为互为主从,且在 Haproxy 中配置 master1 是主库,master2 是备库,正常情况下 master1 提供数据增删改操作,master2 作为备份库实时同步 master1 的数据更新,一旦主库 master1 出现异常,Haproxy 将会切

2021-05-11 17:15:47 794 7

原创 传统 I/O 的性能分析和优化

一. 传统 I/O是什么I/O 是机器获取和交换信息的主要渠道,而流是完成 I/O 操作的主要方式。在计算机中,流是一种信息的转换,它是有序的,输入和输出是针对于应用程序而言的。比如当前程序中需要读取文件中的内容就是 输入流(InputStream),而如果需要将应用程序本身的数据发送到其他应用,就是 输出流(OutputStream),合称为输入/输出流(I/O Streams)。根据流的内容的不同, I/O流又可以被分为 字节流 和 字符流,如下图所示:那么字节流和字符流有什么区别呢?参考以下

2021-04-28 16:11:29 1067

原创 ThreadLocal实现原理分析

一. ThreadLocal是什么ThreadLocal 可以理解为线程本地变量,每个线程拥有本地变量的副本,各个线程之间的变量互不干扰,主要用于保证多线程环境下变量的安全。也就是对于同一个 ThreadLocal,每个线程通过 get、set、remove 接口操作只会影响自身线程的数据,不会干扰其他线程中的数据。二. ThreadLocal的数据结构ThreadLocal 的数据结构如下图所示:可以看出,每个线程都拥有自己的一个 ThreadLocalMap,它是 ThreadLocal 中

2021-04-27 17:43:18 829 2

原创 sql分组查询group by结合count,sum统计语句的实现(附带sql详细分析步骤)

日常写代码经常会遇到数据统计的业务场景,分组查询 group by 结合 count 和 sum 的复杂语句写起来容易令人头大,在这里分享几种常用的统计场景,做个记录的同时也希望能帮到大家。场景1:统计每个学生的加分次数/总加分 and 减分次数/总减分库表结构如下所示:学生分数表:student_score字段名含义字段类型备注id自增编号bigintstudent_name学生姓名varcharscore分数doublesort分数类

2021-04-22 11:36:20 39528 2

原创 Java线程池简析

一. 线程池的好处合理利用线程池能够带来三个好处。1.降低资源消耗。通过重复利用已创建的线程,降低线程创建和销毁造成的消耗。2.提高响应速度。当任务到达时,任务可以不需要的等到线程创建就能立即执行。3.提高线程的可管理性。线程是稀缺资源,如果无限制的创建,不仅会消耗系统资源,还会降低系统的稳定性,使用线程池可以进行统一的分配,调优和监控。二. Java线程池参数解析Java 提供的线程池相关的工具类中,最核心的是 ThreadPoolExecutor,完备的构造函数有 7 个参数,如下所

2021-04-15 12:11:00 974

原创 git 撤销 commit 操作

日常写代码容易手抖,一不小心把别人的代码覆盖了,在没被发现或发现了还没被打死的时候,需要及时撤销 commit 操作,回退到以前的版本后再重新将正确的代码进行提交。1. 备份代码将正确的代码进行备份2. 在本地回退到相应的版本git reset --hard <版本号>注意事项:使用 –hard 参数会抛弃当前工作区的修改;使用 –soft 参数会回退到之前的版本,但是保留当前工作区的修改,可以重新提交;这里的 <版本号> 需要在提交记录里面查找:3. push

2021-04-14 10:00:56 623

原创 使用 Java 的 ArrayList 踩过的那些坑

平时开发中,ArrayList 的使用频率是相当高的,但一不小心就容易踩坑,在这里记录一下。1. 使用 Arrays.asList 的坑使用场景正常使用 Arrays.asList 不会有太大问题List<Integer> testList = Arrays.asList(1, 2, 3);添加一个元素,理想状态会输出结果:truetestList.add(4);System.out.println(testList.contains(4));实际运行会报错:问题分析正

2021-03-30 21:14:01 842

原创 Java 读取网络图片存储到本地并生成缩略图

之前使用 Python 爬虫抓取电影网站信息作为自己网站的数据来源,其中包含的图片都是网络图片,会存在这样一个问题:当原始网站访问速度比较慢时,网站图片加载时间也会变得很慢,而且如果原始网站挂了,图片就直接访问不到了。此时的用户体验就很不好,所以对此进行了优化:每次后端启动时会默认开启任务先将未转换的网络图片存储到本地,再把网页中图片列表改为访问本地图片,这样就解决了加载慢的问题,也降低了和原始网站的耦合性,具体步骤如下:1.创建用于保存图片的文件夹我的保存路径:F:\images2.新建 cr

2021-03-28 16:33:39 785

原创 Mybatis Plus 通用枚举的使用

日常开发中经常会用到枚举类型,在 Mybatis Plus 中使用枚举,可以提高代码的可读性和省去数据类型的转换,非常方便。使用的配置也是比较简单的,具体步骤如下:1.定义枚举类型@Getterpublic enum GenderTypeEnum implements IEnum<Integer> { /** * 女 */ WOMAN(0, "女"), /** * 男 */ MAN(1, "男"), /

2021-03-18 15:54:30 3799 1

原创 SpringBoot + Redis 实现发布订阅功能

一. 发布订阅模式(pub/sub)介绍pub/sub 是目前广泛使用的通信模型,它采用事件作为基本的通信机制,提供大规模系统所要求的松散耦合的交互模式:订阅者(如客户端)以事件订阅的方式表达出它有兴趣接收的一个事件或一类事件;发布者(如服务器)可将订阅者感兴趣的事件随时通知相关订阅者。同样,Redis 的 pub/sub 是一种消息通信模式,主要目的是解除消息发布者和消息订阅者之间的耦合, Redis 作为一个 pub/sub 的 server, 在订阅者和发布者之间起到了消息路由的功能。二.

2021-03-13 12:08:29 826

原创 SpringBoot 使用 @ServerEndpoint 后 @Autowired 失效问题分析和解决

之前的技术博客中记录了 SpringBoot 如何集成 WebSocket 实现消息群发推送,主要构建了基础的框架:SpringBoot 集成 WebSocket 实现消息群发推送后续发现使用 @ServerEndpoint 后,@Autowired 就失效了,这是为什么呢?问题描述在具体的业务场景中,需要等用户连接成功后,从库表中先获取10条数据,作为默认的初始化数据进行显示。我们想当然的通过 @Autowired 注解将对应 Service 进行依赖注入。却发现报了空指针的异常,也就是说,所需

2021-03-12 18:09:02 4456 6

原创 SpringBoot 图形验证码的生成和校验

1. 编写工具类package com.cn.beauty.util;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import javax.imageio.ImageIO;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession

2021-02-26 16:37:07 1347 2

原创 SpringBoot 集成 WebSocket 实现消息群发推送

一. 什么是 WebSocketWebSocket 是一种全新的协议。它将 TCP 的 Socket(套接字)应用在了web page上,从而使通信双方建立起一个保持在活动状态的连接通道,并且属于全双工通信(双方同时进行双向通信)。二. WebSocket 的特点WebSocket 的最大特点是,服务器可以主动向客户端推送信息,客户端也可以主动向服务器发送信息,是真正的双向平等对话,属于服务器推送技术的一种。其他特点包括:建立在 TCP 协议之上,服务器端的实现比较容易。与 HTTP 协议有

2021-02-23 14:58:54 1863 2

原创 进程同步互斥工具:管程

一. 什么是管程管程(Monitors) 指的是管理共享变量以及对共享变量的操作过程,让他们支持并发。它是 Java 语言在1.5之前提供的唯一并发原语,而 Java 1.5之后提供的 SDK 并发包也是以管程技术为基础的。二. 为什么使用管程信号量机制本身存在着缺点:进程自备同步操作,P(S) 和 V(S) 操作大量分散在各个进程中,不易管理,易发生死锁。而管程封装了同步操作,对进程隐蔽了同步细节,简化了同步功能的调用界面,使得用户编写并发程序如同编写顺序(串行)程序一样简单。引入管程机制的目的:

2021-02-20 16:36:03 1588

原创 Python 将 QQ 聊天记录生成词云(分手了如何欢度情人节?)

在这个情人节前夕,我把现任对象回收掉了,这段感情积攒了太多的失望,也给了我太多的伤害,所以我看到这个活动的第一反应是拒绝的。然而人生嘛,最重要的就是体验,沉浸在过去的回忆里没有意义,积极面对才能让自己更好地重振旗鼓。所以,当大家都一致地在这个活动里各种秀恩爱时,我决定走一条不一样的路来为单身狗和刚分手的小伙伴们打打气:时间能改变的,是那些原本就不坚定的东西,未来的路还很长,笑一笑,一切都会过去的!言归正传,我们要做的任务是,把 QQ 分手聊天记录导出,使用 Python 分词后做成分开的桃心形状的词云进

2021-02-08 14:03:30 7019 23

原创 阻止 vue Modal 对话框的自动消失(附:修改密码功能完整实现)

Modal 对话框点击确定按钮后,对话框会自动消失,如果想阻止它消失,官方给出的解决方案是给 Modal 添加属性 loading,实现方式如下所示:<template> <Button type="primary" @click="modal1 = true">展示Modal</Button> <Modal v-model="modal1" title="Title" :loading="loadi

2021-02-02 16:36:35 1492

原创 使用 iView 的 Page 组件实现 vue 分页(附后端分页实现)

随着页面数据越来越多,一次性加载所有数据会对后端服务造成压力,同时加载速度慢也会影响用户体验,所以我们通常使用分页的方式来提高性能,优化体验。很多其他博客中都是后端返回所有数据,前端再进行截取,个人认为这样并没有实现真正意义上的分页,所以本博客中由后端实现数据分页,前端只负责展示和处理。vue 分页可以通过 iView 的 Page 组件来实现,简单高效。一. vue 的 Page 组件实现前端分页1. 在 vue 文件中引入 Page 组件<template> <div&g

2021-01-27 11:11:12 2223

原创 深入理解 cookie,session,token

很多技术博客讲到 session,cookie 和 token 的区别和联系 ,但是介绍的不够清晰,因此参考了一些博客,在这里总结记录一下。众所周知,HTTP 是一种无状态协议,即每次客户端发送请求时,对于服务端来说接收到的都是一个全新的请求,因此服务器并不知道客户端的历史请求记录。比如不同的用户登录退出一个网站,每个人的会话状态都是不同的,所以网站需要对这些会话进行管理,而我们今天要讨论的 cookie,session, token 就是用来管理会话的手段。1. cookiecookie 是什么

2021-01-22 11:22:07 966

原创 vue 项目封装 axios 的 HTTP 请求

在介绍如何封装 axios 的 http 请求之前,我们先来了解下什么是 axios。axios 是通过 promise 实现对 ajax 技术 的一种封装,就像 jQuery 实现 ajax 封装一样。简单来说,ajax 技术实现了网页的局部数据刷新,axios 实现了对 ajax 的封装。平时开发 vue 项目时,不同模块都会使用 axios 请求后台的接口,代码如下:this.$axios({ method: "POST", url: "接口地址", params: { 参

2021-01-19 11:02:37 979

原创 微信小程序之实现地图定位(使用腾讯位置服务插件)

一. 开通腾讯位置服务1.进入微信公众平台https://mp.weixin.qq.com/2.登录进入小程序后台,选择 “开发 - 开发工具 - 腾讯位置服务”3.点击 “开通”,进入授权扫码界面4.使用微信扫码进行授权5.绑定开发者账号二. 接入插件1.在小程序后台,选择 “设置 - 第三方设置 - 插件管理”,点击 “添加插件”2.搜索 “腾讯位置服务地图选点” 进行添加三. 开发者密钥配置1. 申请开发者密钥https://lbs.qq.com/dev/consol

2021-01-08 17:59:25 31374 37

原创 2020总结:愿过往皆为序章,未来皆有可期

2020 · 回顾告别2020年是匆忙又坎坷的一年,突如其来的疫情,艰难的返程之路,接连不断的霉运,疲惫不堪的感情,生活好像突然变成了困难模式,充满了人民币玩家会员到期了的凄凉感。年初从烟台回家过年,疫情已经有了苗头,本以为是一场并不严重的小流感,骂骂咧咧地揣着价格翻倍的口罩加入了春运返乡大军,没想到疫情在抵达家乡之后就开始失控蔓延。先是买不到口罩,再是帮忙喂猫的妹子不敢再去,再是单位一再推迟返岗时间,一副丧尸围城的既视感。空气中开始弥漫着浓重的酒精味,街上空空荡荡,零零星星的有采购食材的人匆匆而过。

2021-01-06 16:50:25 4115 8

原创 一次搞清五种 I/O 模型(生动形象版)

1.阻塞IO模型是在读写数据过程中会发生阻塞现象。用户线程发出IO请求后,内核会查看数据是否就绪,如果没有就等待,而用户线程就会处于阻塞状态。当就绪后,内核会将数据拷贝到用户线程并返回结果,用户线程才解除block状态。说人话版本你说我要炸鸡(用户线程发出IO请求),服务小姐姐去看看炸鸡好了没(内核查看数据是否就绪),没有的话就等着炸鸡炸好(等待数据就绪),你就站那儿不敢再问悄悄等着你的鸡,服务小姐姐就去····

2020-12-29 15:19:53 1068 4

原创 微信小程序之踩坑与填坑记录(持续更新...)

之前主要做Java开发,前些时间有机会接触了小程序开发,也挺有意思的,不过在开发微信小程序过程中也遇到了很多坑,特此记录一下所有的坑和解决方案,持续更新······一. 注意事项1.微信小程序的缓存是共通的开发版,体验版,正式版的微信小程序的缓存居然是通用的。这个真的有点惊吓,当时开发账号缓存直接显示在正式版微信小程序上,吓得以为要被祭天了,排查了半天才知道原来缓存是通用的。解决方案在登录前先清除缓存,再重新请求获取。// 清空所有缓存wx.clearStorageSync();2.

2020-12-25 17:52:33 2728

原创 微信小程序之 如何添加背景图片 & 包大小超限解决方案

小程序遇到包大小超出限制时,可以首先检查下是否有过大的图片,采用处理成网络图片的方式就可以快速解决这个问题。本博客包含了三种添加背景图片的方式:base64,图片标签和网络图片,推荐使用第三种。

2020-12-22 18:00:21 5885

原创 Mybatis Plus 实现批量插入

Mybatis Plus 的 IService 接口中提供了批量插入的方法,然而,它的内部实现逻辑竟然是循环单条插入的,显然不符合我们的需求,本博客通过扩展 BaseMapper的方式实现了批量插入数据库操作。

2020-12-18 18:23:57 17507 9

原创 微信小程序 自定义组件和父子组件的传参

微信小程序中我们经常会需要使用到通用的模块,这种时候可以通过自定义组件的方式来减少冗余代码,本博客内容包括自定义组件的实现以及父子组件的传参。

2020-12-15 16:17:13 914

原创 微信小程序之实现隔行变色表格

微信小程序本身没有table标签,本博客使用view来模仿实现隔行变色表格的效果。

2020-12-11 13:11:34 1736 1

原创 微信小程序之 swiper 的 tab 选项卡高度自适应问题解决方案

在开发微信小程序时,发现 swiper 的 tab 选项卡高度默认为 150px,不能做到自适应,如果tab页面的内容较多,就会出现无法完全显示的问题。本 demo 包含两个 tab,详情页面和列表页面,主要解决文本长度不定的情况和列表个数不定的情况。

2020-11-28 20:03:00 1669 2

原创 jenkins自动化部署vue

使用jenkins自动化部署vue

2020-11-23 18:08:41 316

原创 jenkins + springboot + github + maven 自动化部署

一.安装并配置Git1. 安装git在linux服务器上安装git:yum install git查看git是否安装成功:git version能够显示版本号即说明安装成功:设置git用户名和邮箱:git config --global user.name "username"git config --global user.email "username@qq.com"生成授权证书,中间过程直接全部回车:ssh-keygen -t rsa -C "username@qq.co

2020-11-23 15:36:32 404 1

原创 linux下jenkins的安装和配置(war包直接运行)

一. 预置条件安装并配置好 java 环境;二. 安装和配置步骤1. 下载 jenkins.warwget http://mirrors.jenkins.io/war-stable/latest/jenkins.war2. 启动 war 包以后台运行的方式启动 jenkIns war 包:nohup java -jar jenkins.war --httpPort=8123 > system.log 2>&1 &3. 登录 jenkins 页面在浏览器输入:

2020-11-13 12:54:00 3450

原创 微信小程序之文件和图片的上传

微信小程序能够很好的支持图片的选取和上传,但是对于文件类型,只支持从聊天中选取并上传,也算勉强满足了需求,以下就是两种不同方式的上传。

2020-10-31 18:07:14 5056 3

原创 微信小程序登录流程(自定义账号绑定功能)

小程序可以通过微信官方提供的登录能力方便地获取微信提供的用户身份标识,快速建立小程序内的用户体系。但是我目前做的项目的账号数据是预置的,所以在微信登录成功后,需要同时验证绑定状态,绑定成功后,才允许用户进行下一步的操作。

2020-10-31 17:27:09 7913

原创 Nginx 服务器 SSL 证书安装(腾讯云平台)

一. 前提条件已在当前服务器中安装配置 Nginx 服务域名已申请颁发证书(腾讯云可以申请免费的 SSL 证书,很方便)二. 证书安装步骤1. 下载对应证书文件包到本地目录2. 解压缩获得相关类型的证书文件,其中包含 Nginx 文件夹和 CSR 文件文件夹 Nginx 中包含以下两个文件:1_jichunyang.top_bundle.crt 证书文件2_jichunyang.top.key 私钥文件CSR 文件内容: jichunyang.top.csr 文件3. 将 Ng

2020-10-25 14:54:09 1171

原创 使用 Nginx 部署 Vue + SpringBoot 项目

一. Vue 项目的打包在项目路径下打开 cmd,输入以下命令:npm run build出现如下提示说明打包成功:成功后会在项目目录下生成 dist 目录,将对应目录下的 index.html 和 static 文件夹压缩后上传到 linux 下的 nginx 的 html 目录下:解压缩:unzip dist.zip打开 nginx 的 conf 目录,打开配置文件 nginx.conf:二. SpringBoot 项目的打包使用 IDEA 打开项目,使用 maven 将程序打

2020-10-16 14:33:09 1236

JavaGuide面试突击版4.0.zip

JavaGuide面试最新版,很全面的面试题

2021-06-09

link_up.zip

Python 连连看,带多线程倒计时版本,在其他项目版本上改的,原博客地址: https://blog.csdn.net/lu_embedded/article/details/86484603

2021-06-01

mysql-5.7.16-1.el6.x86_64.rpm-bundle.tar

mysql安装包(tar)

2021-05-10

mybatis-generator-core-1.3.2.rar

包含mybatis-generator1.3.2的jar包、mysql数据库连接jar包、mybatis.jar

2018-01-24

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

TA关注的人

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