自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(42)
  • 收藏
  • 关注

原创 @Autowired与@Resource注入NacosConfigService值为null解决方法

@Autowired与@Resource注入NacosConfigService值为null解决方法

2023-02-07 16:35:12 732 1

原创 Java实现基于Socket的负载均衡代理服务器(含六种负载均衡算法)

手撸一个负载均衡代理服务器

2022-07-28 11:36:16 4437 1

原创 SpringBoot根据配置注入接口的不同实现类

我们在使用springboot进行开发的时候经常用到@Autowired和@Resource进行依赖注入,但是当我们一个接口对应多个不同的实现类的时候如果不进行一下配置项目启动时就会报错,那么怎么根据不同的需求注入不同的类型就是一个值得考虑的问题,虽然@Autowired和@Resource就可以实现,但是我们也可以选择更加灵活的@ConditionalOnProperty注解来实现......

2022-06-28 16:08:42 2956 1

原创 Java根据PDF表单模板和CSV表格批量生成证书等文件

最近遇到需求,需要批量生成800+个证书,所以写了一个简单个工具,原理就是PDF表单,读取csv表格中的数据,然后批量生成,比较通用的一个工具,所以分享一下import com.itextpdf.text.DocumentException;import com.itextpdf.text.pdf.AcroFields;import com.itextpdf.text.pdf.BaseFont;import com.itextpdf.text.pdf.PdfReader;import co.

2022-05-26 13:29:16 530

原创 ConcurrentHashMap 和 Hashtable 的区别

ConcurrentHashMap 和 Hashtable 的区别主要体现在实现线程安全的方式上不同。底层数据结构: JDK1.7 的 ConcurrentHashMap 底层采用 分段的数组+链表 实现,JDK1.8 采用的数据结构跟 HashMap1.8 的结构一样,数组+链表/红黑二叉树。Hashtable 和 JDK1.8 之前的 HashMap 的底层数据结构类似都是采用 数组+链表 的形式,数组是 HashMap 的主体,链表则是主要为了解决哈希冲突而存在的;实现线程安全的方式: ① 在

2022-03-10 14:43:06 874 1

原创 深入原理,仿写自己的Mybatis(带缓存)

MyBatis是一个持久层框架,使用简单,学习成本较低,所以是我们学习源码的首选框架。为什么Mybatis可以根据我们的xml去执行相应的sql并将结果封装成实体呢,其实归功于Java中两个很重要的东西:反射、动态代理,这可以使你不去修改程序也不用重新编译,只需要修改xml文件就可以实现sql语句的修改,下面我们深入了解一下Mybatis的启动流程并简单的仿写一个自己的MybatisMybatis层次结构SqlSession: ,它是 MyBatis 核心 API,主要用来执行命令,获取映射

2022-02-27 11:02:33 3008

原创 Mybatis通过collection递归查询菜单树的实现方法

在业务开发中我们可能会遇到菜单树的查询之类的需求,即实体中包含本实体的list或数组,层数不定,下面为借助Mybatis的collection的一种方法现有表结构如下domain如下package tech.niua.auth.domain;import com.baomidou.mybatisplus.annotation.IdType;import com.baomidou.mybatisplus.annotation.TableField;import com.baomid.

2022-02-22 20:41:00 1824

原创 UniApp开发H5接入微信登录

最近的uniapp开发中遇到了H5调微信授权登录的业务,记录一下解决方法微信授权微信授权分为两种类型:静默授权:scope=snsapi_base。没有弹窗,只能获取到用户的openid。非静默授权:scope=snsapi_userinfo。有弹窗,需要用户手动点击同意授权,可获取到用户的openid、昵称、头像、性别。以下为官方文档中对两种授权的解释关于网页授权的两种scope的区别说明1、以snsapi_base为scope发起的网页授权,是用来获取进入页面的用户的ope

2022-02-22 20:26:13 6890

原创 删库先别急跑路-Mysql通过binlog日志文件恢复数据

Binlog日志,即binary log,是二进制日志文件,有两个作用,一个是增量备份,另一个是主从复制,即主节点维护一个binlog日志文件,从节点从binlog中同步数据,也可以通过binlog日志来恢复数据1.登录mysql查看binlog日志的状态show variables like '%log_bin%'; 如果显示log_bin为OFF则代表未开启binlog日志,ON为开启了binlog日志2.开启binlog日志进入mysql配置文件(vi /e...

2022-02-13 19:14:25 807

原创 Mybatis中实体类映射时用collection进行分表查询和对象属性映射

我们在用Mybatis开发时会遇到类似于对象内包含对象属性的情况,我们编辑班级时需要将本班教师封装为List一并返回,诸如类似情况我们可以使用collection进行分表操作现有表如下:1.创建实体类//Class.javapackage com.demo.domain;import java.util.List;public class Class { private Long id; private String className; private

2022-01-22 16:02:24 502

原创 NodeJS脚本中for循环中加入setTimeout实现每隔一段时间执行操作

在nodejs中打算实现每隔5s就console一下信息,总共打印10次,于是想到了for循环加setTimeout来实现,可是写出来发现10次在五秒后全部打印出来了,于是开始想办法解决,直接上解决办法for (let i = 0; i < 10; i++) { (function (j) { setTimeout(function timer() { console.log(new Date()+":"+i) }, 5000 *

2022-01-19 11:55:34 1771 1

原创 递归实现二叉树的前中后序遍历--Java

class TreeNode { int val; TreeNode left; TreeNode right; TreeNode() { } TreeNode(int val) { this.val = val; } TreeNode(int val, TreeNode left, TreeNode right) { this.val = val; this.left = left; .

2022-01-17 22:48:05 191

原创 对称二叉树--Java递归

给你一个二叉树的根节点root, 检查它是否轴对称。示例 1:输入:root = [1,2,2,3,4,4,3]输出:true示例 2:输入:root = [1,2,2,null,3,null,3]输出:false提示:树中节点数目在范围[1, 1000]内 -100 <= Node.val <= 100进阶:你可以运用递归和迭代两种方法解决这个问题吗?Related Topics树 深度优先搜索 广度优先搜...

2022-01-17 22:18:59 208

原创 相同的树--Java递归

给你两棵二叉树的根节点p和q,编写一个函数来检验这两棵树是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。示例 1:输入:p = [1,2,3], q = [1,2,3]输出:true示例 2:输入:p = [1,2], q = [1,null,2]输出:false示例 3:输入:p = [1,2,1], q = [1,1,2]输出:false提示:两棵树上的节点数目都在范围[0, 100]内...

2022-01-17 22:17:40 279

原创 二叉树的最大深度--Java递归

给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明:叶子节点是指没有子节点的节点。示例:给定二叉树[3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回它的最大深度 3 。Related Topics树 深度优先搜索 广度优先搜索 二叉树class Solution { public int maxDepth(TreeNode ro...

2022-01-17 22:15:50 388

原创 Java实现简单的表结构

public class TableDemo { public static void main(String[] args) { Table table = new Table(); for (int i = 0; i <= 15; i++) { Entry e = new Entry(i, "元素" + i); table.put(e); } for (int i = 0; i.

2022-01-16 20:48:25 462

原创 CentOS 7 将脚本设为开机启动

1.首先创建一个shell脚本例如test.sh 在脚本中写入想开机执行的命令,例如开机启动docker某个容器#!/bin/bashdocker start xxx2.赋予脚本权限chmod +x test.sh3.将/etc/rc.d/rc.local 文件标记为可以执行文件 CentOS 7 中,/etc/rc.d/rc.local文件的权限可能被降低了,开机的时候执行在自己的脚本是不能启动一些服务的,执行下面的命令可以文件标记为可执行的文件。chmod +x ..

2022-01-13 13:00:57 369

原创 Java四种遍历HashMap的方法

public class HashMapStudy { public static void main(String[] args) { Map<String, String> map = new HashMap<>(3); map.put("key1","value1"); map.put("key2","value2"); map.put("key3","value3"); //方法1:.

2022-01-08 19:29:21 319

原创 CentOS使用yum安装并配置redis

1.安装 配置yum仓库yum install epel-release 安装yum install redis 相关命令# 启动redisservice redis start# 停止redisservice redis stop# 查看redis运行状态service redis status# 查看redis进程ps -ef | grep redis设置开机自启动chkconfig redis on开放端口# 开启6379/sbi...

2022-01-05 18:24:56 1654

原创 MacOS使用brew安装mysql5.7

1.安装mysql5.7brew install [email protected].自动添加到环境变量brew link --force [email protected].启动及相关命令brew services start [email protected] //启动brew services stop [email protected] //停止brew services restart [email protected] //重启4.设置密码启动服务之后在终端中输入如下命令mysql_secure_insta..

2021-12-28 19:57:24 1344

原创 vue+electron创建桌面客户端项目

创建一个简单的vue+electron项目

2021-12-04 22:04:36 614

原创 MySQL一个属性满足多个条件(选修所有课的学生)

现有表格student、curriculum、sc表如下我们想要获取选修了所有课程的学生sql如下SELECT * FROM student WHERE id IN ( SELECT student_id FROM sc WHERE curriculum_id IN ( SELECT id FROM curriculum ) GROUP BY student_id HAVING COUNT( student_id )=( SELECT

2021-11-08 14:58:49 328

原创 删除链表的倒数第N个节点Java实现

题目描述给你一个链表,删除链表的倒数第n个结点,并且返回链表的头结点。进阶:你能尝试使用一趟扫描实现吗?示例 1:输入:head = [1,2,3,4,5], n = 2输出:[1,2,3,5]示例 2:输入:head = [1], n = 1输出:[]示例 3:输入:head = [1,2], n = 1输出:[1]提示:链表中结点的数目为sz 1 <= sz <= 30 0 <= Node.val &lt...

2021-11-04 15:50:54 232

原创 通过Cookie和Redis实现网站新老用户访问量、平均浏览时长、跳出率等数据的统计

在cms中,站点的新老用户访问量、平均浏览时长、跳出率等数据统计是很常用的功能,在此仅记一次实现此功能的代码实操及部分代码和思路,已将核心数据统计功能封装成工具类,思路在注释中public class OperRedisUtil { @Autowired private StringRedisTemplate stringRedisTemplate; @Autowired private IStatisticsOperLogService statistics..

2021-11-02 11:44:27 800

原创 CentOS虚拟机安装nginx并开启web服务

一、配置 EPEL源sudo yum install -y epel-releasesudo yum -y update二、安装Nginxsudo yum install -y nginx安装成功后,默认的网站目录为: /usr/share/nginx/html默认的配置文件为:/etc/nginx/nginx.conf自定义配置文件目录为: /etc/nginx/conf.d/三、开启端口80和443sudo firewall-cmd --permanent -

2021-11-02 10:47:00 1050

原创 力扣2.两数相加

给你两个非空的链表,表示两个非负的整数。它们每位数字都是按照逆序的方式存储的,并且每个节点只能存储一位数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例 1:输入:l1 = [2,4,3], l2 = [5,6,4]输出:[7,0,8]解释:342 + 465 = 807.示例 2:输入:l1 = [0], l2 = [0]输出:[0]示例 3:输入:l1 = [9,9...

2021-10-19 20:11:07 63

原创 微信小程序使用iView Weapp自定义TabBar并解决切换闪烁问题

文章目录前言 一、iView Weapp是什么? 二、使用步骤 1.引入库 2.读入数据 总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、iView Weapp是什么?示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。二、使用步骤1.引入库...

2021-10-19 19:48:48 2529 13

原创 ssh报错--ECDSA host key for xxx has changed and you have requested strict checking.

在配置免密登录之后将系统重制了,再次配置时报了以下错误解决方案:ssh-keygen -R "ip"原理:清除你当前机器里关于你的远程服务器的缓存和公钥信息

2021-10-06 15:08:10 762

原创 mysql将一行拆分成多行(字符串分割函数)

目前有表如下现在 需要将课程根据分号分割成多行-- 使用mysql库中的自增序列表SELECT t.id, t.NAME, substring_index( substring_index( t.curriculums, ';', b.help_topic_id + 1 ), ';',- 1 ) AS curriculum FROM test t JOIN mysql.help_topic b ON b.help_topic_id < ( le

2021-09-29 22:46:36 4644

原创 Vue根据生日计算年龄代码片段

getAge(){ let birthdays = new Date(出生日期.replace(/-/g, "-或者/,根据日期格式选择")); let d = new Date(); let age = d.getFullYear() - birthdays.getFullYear() - (d.getMonth() < birthdays.getMonth() || (d.getMonth() == birthdays.getMonth() && d.ge.

2021-09-26 13:55:58 1008

原创 linux的目录和文件基本操作

前言FHS(Filesystem Hierarchy Standard,目录层次标准)定义了两层规范:第一层是“/”目录下的各个目录应该放什么数据文件。例如,/etc目录下放置系统的配置文件,而/bin 和/sbin 放置程序及系统命令。第二层是针对/usr 和/var 这两个目录的子目录来定义,例如:/var/log下放置系统日志文件等。一、Linux目录结构1.1、树形目录结构CentOS系统中的目录和文件数据被组织为一个树形目录结构,所有的分区,目录,文件等都具有一个相同的位置起点—根目

2021-09-12 23:02:32 185

原创 linux的shell常用命令与使用

1.什么是Linux ShellLinux Shell是用户和Linux内核之间的接口程序,为用户提供使用操作系统的借口。当Shell向Linux传递命令时,内核会做出响应的反应。Shell是一个用户程序,或是一个为用户和系统交互提供的环境。它是一个执行从标准输入设备读入的命令的语言解释程序,他拥有自己內建的Shell命令集,Shell也能被系统中的其他命令所调用。当登陆或打开控制台时Shell就会运行。Shell不是系统内核的一部分,但是他可以使用内核系统执行命令、创建文件等。Li

2021-09-12 22:53:46 1029

原创 力扣20.有效的括号

一.题目描述给定一个只包括 '(',')','{','}','[',']'的字符串 s ,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。示例 1:输入:s = "()"输出:true示例2:输入:s = "()[]{}"输出:true示例3:输入:s = "(]"输出:false示例4:输入:s = "([)]"输出:false示例5:输入:s = "{[]}"输出:true提示:...

2021-09-12 20:37:33 228 1

原创 阿里云短信开发Java版

一.进入阿里云官网,开通短信服务申请签名和模板二.依次点击--帮助文档--开发指南--SDK参考--新版SDK--JAVA三.点击OpenAPI开发者门户进入示例页面在左侧的表单区域添加自己的签名和模板,如果有参数的话参数一定是JSON格式,发起调用主要代码// This file is auto-generated, don't edit it. Thanks.package com.aliyun.sample;import com.aliyun.te...

2021-09-10 21:01:06 1199

转载 在Linux中配置EwoMail 邮件服务器

开源文档地址关闭selinuxvi /etc/sysconfig/selinuxSELINUX=enforcing 改为 SELINUX=disabled邮箱域名EwoMail本身是可以配置多个域名来收发邮件的,但在安装前需要一个邮箱的主域名。本次教程例子使用的主域名是ewomail.cngit安装 (centos7/8)gitee安装(centos7/8)推荐gitee 项目地址https://gitee.com/laowu5/EwoMai...

2021-08-30 22:01:56 755

原创 MacOS在VMware中安装纯命令行CentOS并使用ssh连接

1.下载镜像CentOS-7-x86_64-Minimal-2009.iso2.打开VM虚拟机新建,选择刚刚下载好的镜像3.根据个人喜好选择引导方式4.根据个人需求来修改虚拟机的内存等设置5.运行虚拟机进安装界面如果需要修改时区的话点击DATE & TIME修改时区--点击磁盘图标选择安装磁盘--点击NETWORK后点击打开然后点击begin配置用户和密码6.配置ssh连接由于我们安装的是精简的包,所以只有基础的公能,首先我们先通过yum安装一下net-too...

2021-08-30 21:53:45 373

原创 springboot发送带附件邮件并配置以防中文乱码

代码package util;import org.springframework.core.io.FileSystemResource;import org.springframework.mail.javamail.JavaMailSenderImpl;import org.springframework.mail.javamail.MimeMessageHelper;import javax.mail.MessagingException;import javax.mail.int

2021-08-17 18:16:03 536

原创 java 根据pdf模板表单生成对应pdf(用于荣誉证书等生成)

代码段package com.util;import java.io.ByteArrayOutputStream;import java.io.FileOutputStream;import java.io.IOException;import java.io.OutputStream;import java.util.HashMap;import java.util.Map;import com.itextpdf.text.DocumentException;import com.

2021-08-17 14:03:09 741 1

原创 JavaScript单页面多视频,视频播放时其他视频暂停

var videos = document.getElementsByTagName('video') for (let i =0;i<videos.length;i++){ videos[i].addEventListener('play', function(){ var vs = document.getElementsByTagName('video') for (let j = 0; j < vs.length;.

2021-07-31 10:43:55 774

原创 java图片压缩

随着摄像设备的不断进步,图片的大小也在不断的增加,在开发场景中经常遇到进行对象存储服务或者将图片上传至ftp的需求,如果直接上传则非常消耗存储空间和时间,所以我们常常需要对图片进行质量压缩处理贴出一段图片压缩代码工具类:/** * 压缩图片(通过降低图片质量) * @explain 压缩图片,通过压缩图片质量,保持原图大小 * @param quality * 图片质量(0-1) * @return byte[] *

2021-07-26 14:00:20 297

dy 截流助手 弹幕 礼物 聊天 直播抓取 支持二维码跳转主页

dy 截流助手 弹幕 礼物 聊天 直播抓取 支持二维码跳转主页

2024-03-14

空空如也

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

TA关注的人

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