自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

程序猿爱篮球

你站在桥上看风景,看风景的人在楼上看你。明月装饰了你的窗子,你装饰了别人的梦。

  • 博客(23)
  • 资源 (2)
  • 收藏
  • 关注

原创 Java双亲委派过滤器:深度解析类加载机制的安全护卫器

在每个类加载器的loadClass方法中,通过委派给父类加载器的方式,逐层调用双亲委派过滤器,对类的加载进行过滤和验证。在Java的类加载机制中,双亲委派模型起到了重要的作用,保障了代码的安全性和可靠本文将深入解析Java双亲委派过滤器的技术原理,以及它在保护Java应用程序工作站支架攻击方面的重要作用。在Java中,类加载器采用了双亲委派模型,这意味着类加载请求只会被传递到父类加载器,在父类加载器无法找到对应类时,才会由子类加载器尝试加载。这个体系保证了类加载的顺序和一致性,防止了类的重复加载关系。

2023-11-11 15:35:16 80

原创 系统学习Hash算法对称加密非对称加密公钥私钥签名证书国密算法(附JAVA案例)

一文带你闹明白Hash算法、对称加密、非对称加密、公钥、私钥、签名、证书、国密算法等内容。

2022-09-14 22:56:03 2489 1

原创 如何写出优雅易维护的代码?——浅谈策略模式

最近在工作中偶遇一个看似平平无奇的需求,简单概括就是改造项目里之前做的PDF导出模板和数据,这里需要根据不同状态导出不同的模板数据。接到需求那一刻,脑海里瞬间就有了解决方案,只需要简单修改一下模板,然后修改查询回填数据就可以了嘛 so easy 。当我找到这一块的代码的时候整个人都懵了,因为需要判断两个状态,之前的代码是这样实现的:switch...case... 接着里边再用上祖传的 if...else...判断,注释寥寥几行展示了前人强大的脑回路......

2022-08-31 08:00:00 371

原创 SpringBoot优雅实现定时任务

(一)定时任务方式介绍日常项目开发中难免会用到定时任务,如果定时任务数量少,需求变更不频繁,代码耦合度低,那皆大欢喜。否则定时任务的维护也是让人头疼的事情,下边就介绍一下我了解到的几种实现定时任务的方式,技术没用强弱,根据实际情况选择,合适的才是最好的。JDK 的Timer类: 这是Java自带的java.util.Timer类,这个类允许你调度一个java.util.TimerTask任务。有两种方式,一种是使任务在指定时间被执行一次,另一种是从某一指定时间开始周期性地执行任务,一般用的较少。Qu

2021-11-11 16:55:41 2058 7

原创 Minio文件服务器单机部署并将Minio设置成Linux服务启动

(一) Minio简介1.1 Minio介绍MinIO 是一个基于Apache License v2.0开源协议的对象存储服务。它兼容亚马逊S3云存储服务接口,非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等,而一个对象文件可以是任意大小,从几kb到最大5T不等。MinIO是一个非常轻量的服务,可以很简单的和其他应用的结合,类似 NodeJS, Redis 或者 MySQL。1.2 纠删码EC(Erasure Code)MinIO 使用纠删码机制

2021-10-19 09:29:55 8328 6

原创 SpringBoot整合Redis详解(含工具类)

SpringBoot整合redisredis环境搭建:手把手教你如何搭建Redis集群(主从+哨兵)一、Maven依赖(1)、创建SpringBoot项目参考:IDEA快速搭建SpringBoot项目(2)、引入redis依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-

2021-08-16 23:05:11 2321 3

原创 手把手教你如何搭建Redis集群(主从+哨兵),通俗易懂!

一、什么是redis主从复制?主从复制,是指将一台Redis服务器的数据,复制到其他的Redis服务器。前者称为主节点(master),后者称为从节点(slave),数据的复制是单向的,只能由主节点到从节点。master以写为主,slave以读为主。二、主从复制的作用数据冗余:主从复制实现了数据的热备份,是持久化之外的一种数据冗余方式。故障恢复:当主节点出现问题时,可以由从节点提供服务,实现快速的故障恢复;实际上是一种服务的冗余。负载均衡:在主从复制的基础上,配合读写分离,可以由主节

2021-08-13 09:23:35 6989 10

原创 Vue实现手动ajax上传并将文件转成Base64编码字符串传给后端

Vue实现手动ajax上传并将文件转成Base64编码字符串传给后端最近初学vue项目中要用到上传功能,因为element-ui默认通过action上传,不够灵活,看了官方文档之后,改用其中属性http-request实现自定义上传(http-request: 覆盖默认的上传行为,可以自定义上传的实现)先贴一下element-ui Upload 上传的属性参数说明类型默认值action必选参数,上传的地址stringheaders设置上传的请求头部objec

2021-08-06 10:30:34 2642

原创 使用Java输入流(InputStream)读取FTP服务器图片,并上传到另一台FTP服务器

使用JavaInputStream读取FTP图片到远程服务器最近需要做一个新需求,要读取ftp服务器的图片,然后保存到另一台服务器上,ftp的访问路径是经过apache转换的,记录一下遇到的坑。我的方案是想办法拿到这张图片的输入流,然后通过FTPClient上传到另一台服务器,在网上找到了如何拿到输入流,并保存本地的方法。Java从网络读取图片通过InputStream保存至本地,代码如下:package com.hitsys.bayonet.action;import java.io.Fil

2021-07-16 10:38:28 3950 1

原创 超详细Centos网络配置Linux环境搭建及redis安装

Centos7安装redis(一)搭建Centos7环境Oracle VM VirtualBox安装centos7超详细过程记录!(二)下载redis安装包并解压redis官网redis中文网解压redis命令:tar -zxvf redis-6.2.4.tar.gz进入redis目录显示如下:(三)基本环境安装众所周知redis是由c++写的,所以需要安装 gcc 环境(gcc -v)安装gcc环境命令:yum install gcc-c++......

2021-07-03 16:35:16 672

原创 Oracle VM VirtualBox安装centos7超详细过程记录

Oracle VM VirtualBox安装centos虚拟机1、首先下载安装最新版 VirtualBoxVirtualBox下载地址2、准备一个centos镜像centos镜像下载地址网盘链接:https://pan.baidu.com/s/1WlgneUe79UEwW96KhBP7Ug提取码:yuan3、开始创建虚拟机打开Virtual Box,点击新建按钮,点击下一步,输入虚拟机名称,选择操作系统为Linux,选择版本为Red Hat-64bit。根据自身电脑实际情况,分配内

2021-06-29 22:53:22 5930

原创 Java经典算法——回文数和java.lang.UnsupportedOperationException异常源码分析

package com.hitsys.bayonet.action;import java.util.ArrayList;import java.util.Arrays;import java.util.List;/** * 给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。 * 回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。例如,121 是回文,而 123 不是。 * 示例 1: 示例 2:

2021-05-28 11:24:01 172

原创 appemit支持chrome等浏览器使用VLC 播放rtsp rtmp 解决方案

最近项目需要实时播放摄像头rtsp视频流,H5支持rtmp,不支持rtsp,只有通过插件或者转码来实现这个需求。网上有很多中解决方案,但是我的需求需要切换rtsp流。最后选择了Appemit,做个简单记录。第一步:下载 vlc http://www.videolan.org/vlc/第二步:下载 Appemit和案例 程序名称 AppEmit.exe官方网址 Github 文章仅用作分享记录,如有不当之处,还望指正。......

2021-04-20 14:13:34 3558

原创 IDEA快速搭建SpringBoot项目(HelloWorld)

使用IDEA创建SpringBoot项目项目环境IDEA 2020.3.2JDK1.8Maven3.63(1) 打开IDEA,右上角选择: New Project(2)选择弹窗左侧的 Spring Initializr,然后选好择你的 JDK版本,点击 Next注意:这里idea默认使用https://start.spring.io提供的在线模板,所以需要保证网络畅通。如果网络不好可以选择下面Custom用户自定义,输入阿里云初始化URL地址http://start.al

2021-04-14 16:27:49 468 4

原创 Canvas获取视频指定区域的各个点坐标

<!DOCTYPE html><html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>c

2021-03-03 08:43:40 872 2

原创 mybatis 查询数据库返回map集合和@MapKey注解的使用场景

(一)背景说明众所周知,遍历集合时如果进行数据库操作会引发严重的性能问题,我们该如何去避免这个问题呢?本文记录一下前段时间遇到这个问题的解决方案。 (二)解决方案我的解决方案是在数据库查询的时候以UUID为键,以实体类对象为值把数据存储在Map集合里边,然后根据UUID去获取对应的数据。 Mybatis官方文档的对该注解的解释:mybatis官方API文档 我这里的需求是根据UUID去获取另一张表的数据,UUID作为Map的主键以后,可以调用contains

2021-02-05 11:04:49 1178

原创 Mysql添加字段、修改字段类型、修改字段名称

MySql添加字段ALTER TABLE t_table ADD COLUMN column_name int(16) DEFAULT NULL COMMENT ‘列名’ AFTER column_after;命名解释:**t_table :**表名**column_name :**添加的字段名称**int(16):**字段类型和长度**DEFAULT NULL:**默认值为NULL**‘列名’:**字段的含义**column_after:**在column_after字段之后添加colu

2021-02-02 09:15:42 525

原创 Java日期处理相关工具类

package com.hitsys.bayonet.utils;import java.sql.Timestamp;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;import java.util.GregorianCalendar;import org.apache.log4j.Logger;/**

2021-01-09 13:27:36 187 2

原创 这些关于String类的常用方法你知道多少?

1、获取字符串的长度 String stringLength="abc"; System.out.println("字符串长度:"+stringLength.length()); //打印输出: //字符串长度: 32、获取字符串某一位置字符 String stringCharAt="abc"; System.out.println("字符:"+stringCharAt.charAt(0)); //打印输出: //字符: a3、查找子串在字符串中的位置

2020-12-31 09:13:36 447

原创 冒泡排序算法(附java实例)

冒泡排序升序排列public class test { public static void main(String[] args) { //定义一个数组 int [] arr={6,12,8,24,18,66}; //定义一个中间变量 int temp=0; for (int i = 0; i < arr.length; i++) { for (int j = 0; j < arr.length-i-1; j++) { if(arr[j]>arr[j

2020-12-17 09:08:50 1031

原创 BigDecimal运算使用方法(附简单案例)

(一)BigDecimal 加法运算——add()方法1、Int 类型 BigDecimal bigInt1 = new BigDecimal(6); BigDecimal bigInt2= new BigDecimal(8); BigDecimal intSum = new BigDecimal(0); //BigDecimal求和 intSum = bigInt1 .add(bigInt2); System.out.println("和 :" +intSum); //打印输

2020-12-11 16:59:49 15501

原创 MySql建表时自动创建时间和自动更新时间

MySql建表时自动生成时间 自动创建时间‘createTime‘ datetime DEFAULT CURRENT_TIMESTAMP COMMENT ‘创建时间’ 自动更新时间‘updatetime‘ datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT ‘更新时间’...

2020-12-03 15:25:55 984

原创 Java设计模式之单例模式(附简单案例)

一、简单描述单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。注意看这里单例类只能有一个实例。单例类必须自己创建自己的唯一实例。单例类必须给所有其他对象提供这一实例。分类单例模式就实例的创建时机来划分可分为:懒汉式与饿汉式两种。

2020-12-02 09:36:54 5682 2

shiro实战教程资料.zip

shiro实例、springboot整合shiro+thyleaf

2021-04-19

递归实现字符串模糊匹配.java

使用递归实现,字符串模糊匹配,看设置允许匹配错误数。

2020-12-26

空空如也

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

TA关注的人

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