自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 邮件发送easyexcel附件

【代码】邮件发送easyexcel附件。

2023-12-12 10:21:25 87

原创 easyexcel导出自定义表格数据

【代码】easyexcel导出自定义表格数据。

2023-12-12 10:00:22 125 1

原创 spring boot整合kaptcha验证码

校验验证码的方法写在登录请求token中会更好。

2023-07-27 13:46:01 336

原创 vue前端导出多级表头EXCEL

VUE导出Excel

2023-03-08 17:39:59 2039 1

原创 前端XMLHttpRequest发送请求

前端请求

2022-09-15 11:40:44 452

原创 navcat导入数据带小数点

navcat导入小数点

2022-06-20 15:21:30 383

原创 Mybattis-Plus多数据源配置

一、YML配置server: port: ${AA.server.port:8080}spring: autoconfigure: exclude: com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure application: name: dips datasource: dynamic: ## primary表示主数据源,不设置注解DS默认使用dips

2022-05-16 18:36:39 409

原创 Java请求webServer接口

使用Hutool封装 的方法官方文档:https://www.hutool.cn/docs/#/http/WebService/Soap%E5%AE%A2%E6%88%B7%E7%AB%AF-SoapClient

2022-03-24 16:15:11 729

原创 Vue常用

**组件动态渲染,需要调用组件:**使用this.$nextTick(()=>{})包裹方法,表示在DOM元素渲染完毕后执行。**获取动态生成的元素,可绑定REF获取:**配合第一条this.nextTick,使用this.nextTick,使用this.nextTick,使用this.refs.(ref绑定值)...

2021-11-18 10:30:22 160

转载 Centos搭建FTP服务

简介:vsftpd 是“very secure FTP daemon”的缩写,安全性是它的一个最大的特点。vsftpd 是一个 UNIX 类操作系统上运行的服务器的名字,它可以运行在诸如 Linux、BSD、Solaris、 HP-UNIX等系统上面,是一个完全免费的、开放源代码的ftp服务器软件,支持很多其他的 FTP 服务器所不支持的特征。比如:非常高的安全性需求、带宽限制、良好的可伸缩性、可创建虚拟用户、支持IPv6、速率高等。vsftpd是一款在Linux发行版中最受推崇的FTP服务器程序。

2021-10-27 16:08:04 569

原创 oracle常用更新数据语句

1.联表更新UPDATE T_DEV_ASSET_ACCOUNT SET T_DEV_ASSET_ACCOUNT.DEVICE_TYPE = ( SELECT ID FROM T_DEV_DEVICE_TYPE WHERE T_DEV_ASSET_ACCOUNT.PICTURE = T_DEV_DEVICE_TYPE.DEVICE_CATEGORY ) WHERE id BETWEEN 40000 AND 459072.同一张表,用不同字段截取填充另外一字段UPDATE T_DEV_ASS

2021-10-11 11:54:44 5677

原创 Collections基础使用

CollectionsListArrayList长度不受限制实现:当不够用,则将本数组拷贝到另外一个新数组,新数组的长度为:原数组长度+原数组长度的一半Collection<String> c = new ArrayList<>();List<String> c = new ArrayList<>();//两种写法都可以,因为List继承了Collection System.out.println(c.size()); //集合长度 Syste

2021-09-29 09:54:39 106

转载 mybatis常用sql

一. 定义 sql 语句select 标签属性介绍:id :唯一的标识符.parameterType:传给此语句的参数的全路径名或别名 例:com.test.poso.User 或 userresultType :语句返回值类型或别名。注意,如果是集合,那么这里填写的是集合的泛型,而不是集合本身(resultType 与 resultMap 不能并用)select * from student where id=#{id}123insert 标签属性介绍:id :唯一的标识符.

2021-09-29 09:15:00 320

原创 Redis在SpringBoot中的配置

1.引入依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId></dependency> <dependency> <groupId>org.springfram

2021-09-28 13:47:33 583

原创 Mybatis-Plus配置使用

1.引入依赖<dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>mybatis-plus-latest-version</version></dependency>2.配置数据库连接(yml)spring: applic

2021-09-28 10:42:05 218

原创 PDF预览、图片预览插件

1.PDF.JS下载地址:地址1.下载资源放在public/static/pdf下2.后端书写方法,返回byte字节流给前端。3.前端API注意返回类型为blobexport function filePreview(query){ return request({ url:"/attachment-server/attachment/filePreview", method: 'post', responseType: 'blob', params:query

2021-09-27 17:28:50 1475

原创 JS对象数组去重

const res = new Map();return arr.filter((arr) => !res.has(arr.id) && res.set(arr.id, 1))id为你想要根据哪个字段去重。

2021-09-14 16:33:43 56

原创 常用时间处理

获取上周时间段 LocalDate localDate = LocalDate.now(); localDate = localDate.plusDays(-1); LocalDate startTime = localDate.with(DayOfWeek.MONDAY); LocalDate endTime = localDate.with(DayOfWeek.SUNDAY);

2021-08-30 11:20:48 156

原创 InputStream、String互相转换

1.InputStream转String/* * InputStream转字符串 */ public String inputstrToStr(InputStream inputStream) throws IOException { byte[] bytes = new byte[0]; bytes = new byte[inputStream.available()]; // 读取文件内容到字节数组 int o

2021-08-23 23:21:28 699

原创 AOP注解实现

目录何为AOP1. 创建自定义注解2.导入依赖3.切面对应类何为AOPAOP(Aspect Oriented Programming)⾯向切⾯编程。OOP(Object Oriented Programming)⾯向对象编程,⽤对象化的思想来完成程序。AOP 是对 OOP 的⼀个补充,是在另外⼀个维度上抽象出对象。具体是指程序运⾏时动态地将⾮业务代码切⼊到业务代码中,从⽽实现程序的解耦合,将⾮业务代码抽象成⼀个对象,对对象编程就是⾯向切⾯编程。按每个方法,如增删查改,在每个方法上新增代码(冗余

2021-07-13 22:25:48 2026

原创 AOP实现系统通用日志功能

目录实现使用AOP记录日志1.添加依赖2.自定义注解3.建表4.创建对应实体类、接口等实现方法5.创建AOP切面实现类(重点)6.使用实现使用AOP记录日志1.添加依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-aop</artifactId></dependency>2.自定

2021-07-09 19:39:27 275

翻译 MyBatis-Plus基本使用

目录常用注解查询自定义 SQL(多表关联查询)添加删除修改MyBatisPlus 自动生成Spring Boot + MyBatis Plus 打包应用,直接发布 阿里云 上云常用注解@TableName映射数据库的表名import com.baomidou.mybatisplus.annotation.TableName;import lombok.Data;@Data@TableName(value = "user",type = IdType.AUTO)public class

2021-06-28 23:10:30 304

原创 MyBatis-Plus工程创建

pom.xml引入依赖<dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.3.1.tmp</version></dependency>创建mapper接口public interface UserMapper e.

2021-06-28 22:30:54 129

原创 ResultUtil工具类

日常使用的ResultUtil,根据个人需求更改public class AjaxResult extends HashMap<String, Object>{ private static final long serialVersionUID = 1L; /** 状态码 */ public static final String CODE_TAG = "code"; /** 返回内容 */ public static final Stri

2021-06-28 22:11:16 774

原创 vue-qr生成二维码

vue-qr一个生成二维码的工具使用安装npm install vue-qr --save引用// vue2.0import VueQr from 'vue-qr'// vue3.0import vueQr from 'vue-qr/src/packages/vue-qr.vue'export default { components: { vueQr } }使用 <vue-qr :text="accountName" :size="70" :margi

2021-06-16 14:14:50 154

翻译 RocketMQ使用

目录一、安装RocketMQ二、安装RocketMQ控制台三、Spring Boot整合RocketMQ一、安装RocketMQ解压unzip rocketmq-all-4.7.1-bin-release.zip启动nohup ./bin/mqnamesrv &检查启动情况netstat -an | grep 9876启动Broker启动之前需要编辑配置文件,修改 JVM 内存设置,默认给的内存 4 GB,超过我们虚拟机的 JVM 了。cd binvim

2021-06-14 22:13:39 131

原创 Sentinel使用

目录环境配置流控流控模式:关联流控模式:链路流控效果:Warm up流控效果: 排队等待降级降级策略:RT(平均响应时间)降级策略:异常比例降级策略:异常数热点授权自定义规则异常返回熔断器原理图:环境配置pom.xml引入依赖<dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-sentinel</

2021-06-02 22:35:00 168

原创 Nacos使用

目录服务注册服务发现与调用负载均衡轮询随机Nacos权重服务注册在父工程路径下创建子工程,让子工程继承父工程的环境依赖。pom.xml 中添加 nacos 发现组件。<dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></depende

2021-06-01 22:48:59 121

原创 Mysql在没有主键情况下,删除重复数据

# 方法一建一个临时表,并将筛选的数据导入临时表CREATE TABLE shop_users2 AS ( SELECT DISTINCT * FROM shop_users )删除原表数据DELETE FROM shop_users将临时表数据插入原表INSERT INTO shop_users SELECT * FROM shop_users2...

2021-05-26 14:04:34 2229

翻译 Ngin入门

一、安装Nginx1、准备工作(1)打开虚拟机,使用远程连接工具连接 linux 操作系统(2)到 nginx 官网下载软件http://nginx.org/2、开始进行 nginx 安装(1)安装 pcre 依赖第一步 联网下载 pcre 压缩文件依赖wget http://downloads.sourceforge.net/project/pcre/pcre/8.37/pcre-8.37.tar.gz第二步 解压压缩文件使用命令 tar –xvf pcre-8.37.tar.gz第

2021-05-24 22:02:00 287

转载 Nginx快速入门(转)

目录公司产品出现瓶颈?什么是Nginx?Nginx作用?Nginx的安装linux下安装Nginx常用命令演示公司产品出现瓶颈?我们公司项目刚刚上线的时候,并发量小,用户使用的少,所以在低并发的情况下,一个jar包启动应用就够了,然后内部tomcat返回内容给用户。但是慢慢的,使用我们平台的用户越来越多了,并发量慢慢增大了,这时候一台服务器满足不了我们的需求了。于是我们横向扩展,又增加了服务器。这个时候几个项目启动在不同的服务器上,用户要访问,就需要增加一个代理服务器了,通过代理服务器来帮我们转

2021-05-19 00:00:44 60

翻译 范型

目录概念实现范型通配符上下限概念是指在类定义时不指定类中信息的具体数据类型,⽽是暂时⽤⼀个标识符来替代,当外部实例化对象的时候再来指定具体的数据类型。这种方式大大提高了程序的灵活性,类的扩展性。实现public class Time<H,M,S> { private H hour; private M minute; private S second; public H getHour() { return hour; } public void setHour(H ho

2021-03-26 15:19:36 51

原创 集合框架1

目录概述接口类别List接口常用方法Array List概述由于数组是固定长度的,并且无法存储不同的数据类型,因此就有了集合的诞生。Java 中的集合不是由⼀个类来完成的,⽽是由⼀组接⼝和类构成了⼀个框架体系。⼤致可分为 3 层,最上层是⼀组接⼝,继⽽是接⼝的实现类。java集合主要由collection和map组成。接口类别Collection:集合框架最基础的接⼝,最顶层的接⼝。List:Collection 的⼦接⼝,存储有序、不唯⼀(元素可重复)的对象,最常⽤的接⼝。Set:Colle

2021-03-25 17:38:53 52

原创 线程池

目录概念优点流程概念一种线程使用模式,线程过多会带来调度开销,进而影响缓存局部性和整体性能。而线程池维护着多个线程,等待着监督管理者分配可并发执行的任务。这避免了在处理短时间任务时创建与销毁线程的代价。简单来说,线程都放在一个池里,每次使用都从池里获取,用完后归还到池中。优点提⾼线程的利⽤率提⾼响应速度便于统⼀管理线程对象可控制最⼤并发数流程线程池初始化会对以下参数进行设置corePoolSize:核⼼池的⼤⼩maximumPoolSize:线程池的最⼤容量keepAliveTi

2021-03-23 11:58:35 98

原创 生产者消费者模式

目录概念wait/sleep实现Hamburger实体类Container容器类Consumer消费者Producer生产者概念生产者消费者模式,即N个人进行消费,N个人进行生产,共用一个资源池进行通信。(插一个常见解释图片)1、生产者产生资源往池子里添加,前提是池子没有满,如果池子满了,则生产者暂停生产,直到自己的生成能放下池子。2、消费者消耗池子里的资源,前提是池子的资源不为空,否则消费者暂停消耗,进入等待直到池子里有资源数满足自己的需求。wait/sleep项目waitsle

2021-03-16 16:12:51 243

原创 ReentrantLock

目录介绍区别优势实现介绍ReentrantLock是JDK实现的一个类,是对synchronized 的升级,其作用也是为了实现线程同步。区别ReentrantLock 是一个类,synchronized 是一个关键字。ReentrantLock 是 JDK 实现,synchronized 是 JVM 实现。synchronized 可以自动释放锁,ReentrantLock 需要手动释放。ReentrantLock 可实现公平锁。(公平锁代表按时间执行)ReentrantLock 可重复

2021-03-15 12:00:00 103 1

翻译 死锁

目录死锁 DeadLock如何破解死锁使用 lambda 表达式简化代码开发LockJava 默认线程有两个,main(主线程),GC(垃圾回收机制)synchronized 关键字实现线程同步,让在访问同一个资源的多个线程排队去完成业务,避免出现数据错乱的情况。死锁 DeadLock前提:一个线程完成业务需要同时访问两个资源。死锁:多个线程同时在完成业务,出现争抢资源的情况。资源类package com.southwind.demo1;public class DeadLockRunna

2021-03-11 22:33:24 72

翻译 线程安全的单例模式

线程安全的单例模式单例模式是一种常见的软件设计模式,核心思想是一个类只有一个实例对象。JVM:栈内存、堆内存单线程模式下的单例模式package com.southwind.test;public class SingletonDemo { private static SingletonDemo singletonDemo; private SingletonDemo() { System.out.println("创建了SingletonDemo..."); }

2021-03-10 22:43:40 93

翻译 线程同步

线程同步Java 中允许多线程并行访问,同一时间段内多个线程同时完成各自的操作。多个线程同时操作同一个共享数据时,可能会导致数据不准确的问题。使用线程同步可以解决上述问题。可以通过 synchronized 关键字修饰方法实现线程同步,每个 Java 对象都有一个内置锁,内置锁会保护使用 synchronized 关键字修饰的方法,要调用该方法就必须先获得锁,否则就处于阻塞状态。非线程同步package com.southwind.test;public class Account impl

2021-03-10 22:42:04 73 1

原创 Java多线程的实现

目录Java 多线程的实现线程调度线程礼让线程中断Java 多线程的实现继承 Thread实现 Runnable线程调度线程休眠让当前线程暂停执行,从运行状态进入阻塞状态,将 CPU 资源让给其他线程的调度方式,通过 sleep() 来实现。sleep(long millis),调用时需要传入休眠时间,单位为豪秒。package com.southwind.test;public class MyThread extends Thread{ @Override public

2021-03-09 22:14:01 134

jetty.zip离线版本

jetty离线包,Eclipse中使用解压后,整个文件夹拉入Eclipse目录下的dropins文件中。重启Eclipse即可。

2021-03-23

空空如也

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

TA关注的人

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