自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

阿锦的博客

技术变现

  • 博客(37)
  • 收藏
  • 关注

原创 为SpringBoot接口适配Gzip压缩数据请求加快超大Json对象的传输速度

SpringBoot接口适配Gzip压缩数据请求缩小传输数据,加快传输速度,提高接口性能,减少带宽占用

2022-03-29 15:09:53 5372 5

原创 记录一次腾讯云服务器中毒,CUP100%,违规攻击其他服务器6369端口的警告

文章目录大清早的醒来突然收到腾讯云的邮件,大概就是说你的服务器违规了,攻击了其他服务器的6379端口,一看这端口这不是我昨天装的redis嘛,重要的是这端口还没改密码!我尼玛肯定是中毒了的节奏啊,登录服务器一看CPU莫名其妙的达到了100%,真是见鬼了,肯定是后台跑满了啥挖矿程序…看来只能重装系统了!!所以有几个建议:安装中间件的时候考虑不要使用默认端口:如6379,8080,2181等一些熟知端口一定要设置密码!设置密码!设密码!不要乱开放安全组,允许任意ip访问服务!!...

2022-03-11 10:07:19 1126

原创 在SpringBoot 2.x 中实现跨域的几种方式

SpringBoot 跨域 拦截器实现,局部跨域,配置类实现跨域

2022-01-07 11:54:26 656

原创 在Vue中使用Echarts图表库Demo

Vue中使用Echarts图表库实现数据可视化功能

2022-01-07 11:49:32 1362

原创 解决Vue template中无法使用script标签的问题

文章目录问题背景问题背景在公司写了个网页,网站运营搞起来了流量还不错,于是老板叫我们在网站中各个位置中插入广告位,谷歌提供的广告位大概长这样:<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=xxx" crossorigin="anonymous"></script><!-- HomeTop_square --><ins

2021-12-17 16:05:24 5733 3

原创 使用Nginx部署Vue前端项目

使用Nginx部署前端Vue项目或者静态网页

2021-12-14 16:27:52 1720

原创 解决Vue项目打包后文件预览加载不出来的问题

vue项目打包后无法正常显示,vue项目引用element-ui中的图标无法显示

2021-12-14 15:03:47 2645

原创 2-Netty的HelloWorld案例

文章目录1. Netty是什么?2. Netty的Hello World案例2.1 创建Maven工程,引入Netty依赖2.2 实现服务端程序2.3 实现客户端程序3. Netty 中的重要概念理解1. Netty是什么?Netty 是一个基于事件驱动的非阻塞网络通信框架,使用Netty可以简化Java网络编程,构建出高性能的客户端、服务端网络应用…2. Netty的Hello World案例2.1 创建Maven工程,引入Netty依赖<dependency> <gro

2021-11-21 19:37:33 209

原创 多线程协作-生产者消费者模式

文章目录1. 什么是生产者消费者模式?2. 使用BlockingQueue实现线程安全的生产者消费者模式3. 基于synchronized、wait、notifyAll实现生产者消费者模式总结1. 什么是生产者消费者模式?​ 是用于多线程协作的设计模式,在生产者消费者模型中往往有两类线程:生产者线程、消费者线程,生产者线程通过数据缓冲区进行数据通信,使得消费者线程无需一直傻傻等待生产者线程产生数据大大提高了通信效率,同时数据缓冲区的存在降低了生产者和消费者直接的耦合度,而且还能缓冲生产速率和消费速率的不

2021-10-30 13:20:37 183

原创 Java线程池原理分析

文章目录1. Java线程池类的组织架构2. 使用线程池静态工厂Executors创建线程池3. 核心线程池的内部实现 ⭐4. 为什么不推荐使用Executors创建线程池?5. 创建自定义线程池1. Java线程池类的组织架构Executor 最高级线程调度接口ExecutorService 通用线程池接口AbstractExecutorServiceThreadPoolExecutor – 线程池实现类ScheduledExecutorService – 执行周期性任务的线程池实

2021-10-23 23:11:36 74

原创 面试题--Cookie、Session、Token的区别

文章目录1. Cookie,Session他们之间的区别?关于cookie和session的分析:两者对比:如何在Java中创建和设置Cookie和Session?关于cookie和session的补充2. Token是什么?1. Cookie,Session他们之间的区别?参考掘金好文关于cookie和session的分析:​ 先说说背景,了解什么是cookie和session,为什么需要cookie和session。​ http是无状态协议,就是说服务端对每一次请求都是无记忆的,因此服务端就

2021-10-20 08:27:14 1008

原创 JVM面试题---JVM类加载机制和对象的生成过程简单分析

文章目录1. 类加载机制1.1 过程概要 ⭐1.2 过程分析① 加载② 连接③ 初始化2. Java虚拟机对象的创建过程2.1 对象的创建过程2.2 对象的内存布局1. 类加载机制1.1 过程概要 ⭐加载:将class文件中的类信息通过二进制流的形式加载到JVM内存中连接包括三个步骤验证:主要是判断是否符合Class文件规范,保证JVM安全性。准备:为类静态变量分配内存并初始化零值。解析:将常量池中的符号引用替换为直接引用。初始化最后两个步骤使用和卸载(不太关注)1.2 过程

2021-10-12 16:06:09 167

原创 Java集合框架--HashMap面试题和源码分析

文章目录1. HashMap源码概述HashMap源码核心属性:2. 简单题2.1 为什么初始容量必须保证为2的n次幂?2.2 如何确定元素在数组的位置?2.3 你一般用什么类型来做HashMap的Key? 为什么?2.4 使用自定义对象作为HashMap的Key没有正确重写HashCode方法和Equals方法会发生什么问题?3. 源码和原理分析3.1 get方法的执行过程?3.2 put 方法的执行过程?3.3 resize 扩容过程?3.4 reomve()方法分析4. 相关补充 ????异或和按位与

2021-10-08 16:13:27 90

原创 如何在SpringBoot中使用异步方法优化Service逻辑提高接口响应速度?

文章目录1. 为什么需要异步方法?2. SpringBoot中的异步方法支持3. 自定义线程池执行异步方法5. 如何捕获(无返回值的)异步方法中的异常5. 如何获取(有返回值)异步方法的返回值6. 异步方法带来的问题/拓展1. 为什么需要异步方法?先说结论: 合理使用异步方法可以让业务接口快到飞起!​ 异步方法适用于逻辑与逻辑之间可以相互分割互不影响的业务中, 如生成验证码和发送验证码组成的业务, 其实无需等到真正发送成功验证码才对客户端进行响应, 可以让短信发送这一耗时操作转为异步执行, 解耦耗时操

2021-08-22 18:00:52 6548 1

原创 0-CentOS8安装RabbitMQ记录

文章目录1 相关资源2. 安装解压并安装Erlang解压并安装RabbitMQ管理界面入门脉络梳理1 相关资源RabbitMQ阿里云博客-Windows端入门教程2. 安装参考教程# 创建目录准备存放安装包mkdir -p /usr/rabbitmq# 访问官网下载安装包Erlang https://packagecloud.io/rabbitmq/erlang/packages/el/8/erlang-24.0.5-1.el8.x86_64.rpmRabbitMQhttps://

2021-08-16 18:18:14 125

原创 3-RabbitMQ只Topic模式实现

文章目录1. 对比Direct模式和Topic模式2. 编码实现Topic模式2.1 生产者模块代码2.2 消费者模块代码(注解实现交换机和队列的绑定)3. 总结1. 对比Direct模式和Topic模式​ Direct模式和Topic模式都属于条件匹配, 满足routingKey匹配条件的栈都会接收到消息. 但是Topic更为强大, 相比于Direct直接匹配Topic则是模糊匹配, 提供了两种模糊匹配符.# 匹配任意个单词* 匹配一个单词Direct模式模型:Topic模式模型:

2021-08-16 13:27:27 341

原创 2-RabbitMQ之实现Direct模式

文章目录1. Fanout模式和Direct模式对比2. 编码实现Direct模式2.1 在生产者中定义交换机和队列并进行绑定2.2 登录逻辑案例--消息的生产2.3 在消费者中编写短信服务和邮件服务完成队列中消息的消费1. Fanout模式和Direct模式对比​ Fanout模式是由Fanout交换机向所有绑定的队列发送消息, 而Direct模式是向指定目标的队列进行消息发送, 前者是广播, 后者是匹配推送.参考>>fanout:direct:2. 编码实现Direct模式

2021-08-15 22:01:29 227

原创 1-RabbitMQ入门Helloworld多模块项目Fanout模式实现生产者消费者模型模拟解耦注册服务

文章目录1. 文章内容2. 环境搭建(多模块工程)2.1 主模块搭建- rabbitmq2.2 子模块搭建 - producer-server2.3 子模块搭建 - consumer-server3. 代码实现 解耦注册服务3.1 Service实现分析3.2 代码实现1-配置两个子模块连接信息2-生产者代码3-消费者代码4. 总结1. 文章内容​ 本文的目的就是在SpringBoot项目中使用RabbitMQ解耦一个模拟的用户注册服务, 进而熟悉RabbitMQ的Fanout模式.​ 完整代码仓库地

2021-08-15 19:31:50 308

原创 SpringBoot整合MybatisPlus和Redis实现基础的增删改查(带完整项目可作为基础工程)

文章目录1. 准备2. 基于注解的缓存实现2.1 开启注解(配置类中或者启动类中)让缓存生效2.2 使用注解配置, 添加, 更新, 删除缓存(Service 案例)3. 基于Redis操作模板类的缓存实现3.1 使用默认的操作模板类3.2 使用自定义的操作模板类(自定义序列化方式)4. 注意点/完整项目地址1. 准备完整代码码云自取创建SpringBoot工程并引入依赖<dependency> <groupId>org.springframework.boot&l

2021-08-06 18:10:09 708

原创 SpringBoot整合MybatisPlus

文章目录1. 导入MySQL连接和MybatisPlus依赖2. application.yml文件配置数据库3. 在启动类上配置Mapper的扫描路径4. 准备数据库表5. 编写Entity,Mapper,和Service6. 测试Mapper和Service1. 导入MySQL连接和MybatisPlus依赖注意:5.x版本的MySQL连接对应5.x版本的MySQL;8.x版本的MySQl连接要对应8.x版本的MySQL;否则会出现坑!我本地MySQL版本是8.x因此要选择8.x的数据库连接。&l

2021-07-26 11:28:59 89

原创 1-基于Maven搭建SpringMVC项目实现hello world

文章目录1.搭建SpringMvc环境1.1 添加Maven依赖1.2 添加项目Web支持生成web文件1.3 配置web.xml1.4 配置springmvc.xml1.5 创建页面文件夹和测试页面 hello.jsp1.6 编写Controller2. 配置Tomcat2.1 选择本地Tomcat2.2 配置打包和路径映射3. 常见错误1.搭建SpringMvc环境使用IDEA创建一个空的Maven项目1.1 添加Maven依赖<dependencies> <d

2021-07-04 19:12:18 288

原创 Java对象的深拷贝和浅拷贝

文章目录1. 对象的深拷贝浅拷贝理解 ?2. 如何实现深拷贝?3. 总结对象的深拷贝和浅拷贝的区别1. 对象的深拷贝浅拷贝理解 ?浅拷贝浅拷贝对于基本数据类型和Stirng类型来说拷贝的是值,对于引用类型来说直接拷贝对象的引用。因此修改了原对象的引用类型会影响到拷贝对象的引用类型。深拷贝深拷贝对于基本数据类型和Stirng类型来说拷贝的是值,对于引用数据类型来说会创建一个新的对象,再将引用指向该对象,因此对原来的对象进行修改不会影响到拷贝的对象。2. 如何实现深拷贝?1.

2021-07-01 10:15:43 188

原创 1-Redis八种数据结构学习总结

文章目录1. 基础知识和指令2. 基本类型2.1 String 字符串类型2.1.1 类型说明,应用场景2.2.2 String常用指令3.1 List 列表类型3.1.1 类型说明,应用场景3.2.2 常用指令4.1Set 无序集合类型4.1.1 类型说明,应用场景4.2.2 Set常用指令5.1 Hash 哈希类型5.1.1 类型说明,应用场景5.2.2 常用指令6.1 ZSet 有序集合类型6.1.1 类型说明,应用场景6.2.2 常用指令2. 特殊数据类型2.1 GeoSpatial 地理空间2.1

2021-06-27 14:55:58 1007

原创 Spring中进行依赖注入的几种方式

文章目录0. 测试准备1. 基于XML配置文件下的依赖注入1.1 get、构造器注入1.2 非静态工厂注入1.3 静态工厂注入1.4 基于注解的注入2. 基于Java配置类下的依赖注入(无XML)0. 测试准备以下代码都是构建在Maven工程下的,我们需要构建好Maven工程导入Spring依赖和Junit依赖<dependencies> <dependency> <groupId>org.springframework</grou

2021-06-24 15:40:14 65

原创 HashMap常见面试题

文章目录1. HashMap相关面试题1.1 HashMap中的常识性问题1.2 HashMap中get方法的具体过程⭐1.3 HashMap中put方法的具体过程⭐1. HashMap相关面试题1.1 HashMap中的常识性问题HashMap的底层数据结构(jdk1.8)数组+链表+红黑树HashMap的数组初始化长度是多少吗?初始长度为0,当我们第一次调用put方法时就会初始化长度为16的数组(容量必须是2的幂)讲讲HashMap的hash函数,以及为什么这么设计?

2021-06-24 10:13:03 61

原创 ArrayList常见面试题

文章目录1. ArrayLsit 和 LinkedList的区别2. ArrayList和Array数组的区别3. 讲讲ArrayList的扩容机制1. ArrayLsit 和 LinkedList的区别ArrayListLinkedList基于数组实现,在内存空间是连续的基于链表实现,在内存空间是分散的查找和添加效率高插入和删除效率高是非线程安全的数据结构也是非线程安全的数据结构2. ArrayList和Array数组的区别ArrayLis

2021-06-24 10:11:14 428

原创 HashMap 使用自定义对象作为Key的注意点

文章目录HashMap 使用自定义对象作为Key的注意点1. 自定义对象不重写hashCode方法和equals会发生什么?2. 在HashMap中使用自定义对象作为key会发生什么?3. 重写hashCode方法和equals方法的原则HashMap 使用自定义对象作为Key的注意点1. 自定义对象不重写hashCode方法和equals会发生什么?public class AboutHashMap { public static void main(String[] args) {

2021-06-23 10:22:15 2457

原创 3-Java多线程编程Thread相关知识点

文章目录1. 获取、设置线程信息的方法2. 如何安全的中断线程?3. 线程的生命周期1. 获取、设置线程信息的方法方法说明static Thread currentThread()静态方法直接通过Thread调用;获取当前线程,哪个线程执行该代码就获取那个线程Thread.currentThread()static void sleep(long millis)静态方法,让当前线程休眠一定的毫秒数 Thread.sleep()static void yield();

2021-06-22 22:58:29 45

原创 2-Java中四种创建并执行线程的方式

文章目录1. 继承Thread对象重写run方法2. 实现Runnable接口3. 实现Callable接口(带返回值)4. 使用线程池1. 继承Thread对象重写run方法public class HowCanCreateThread extends Thread{ public static void main(String[] args) { MyThread myThread = new MyThread(); myThread.start();

2021-06-22 16:36:42 177

原创 1-Java多线程编程基本概念理解

1. 多线程编程基本概念1.1 进程、线程、主线程进程:在操作系统中运行的一个程序,进程是操作系统进行资源分配的基本单位,一个进程可以有多个线程。线程:线程是进程中的一个执行任务,线程是CPU任务调度和执行的基本单位。主线程:①是产生其他子线程的线程;②通常它必须最后完成执行,比如执行各种关闭动作。1.2 串行、并发、并行串行:CPU先执行完任务A,再去执行完任务B,再执行完任务C并发:CUP在执行任务A,等待任务A完成某些操作(如IO)的过程中转而去执行任务B,而在等待任务B完成

2021-06-22 14:21:08 90

原创 JAVA函数中的参数传递规律

1.抛出问题当我们将参数传递给函数时, 会发生一些奇妙的现象: 传入给函数的一些参数在函数内部的逻辑执行完毕之后被修改了, 而一些参数却不会被修改 !!?2.先说结论基本数据类型及其包装类型作为函数参数传递时, 传递的是拷贝值, 因此函数内部对拷贝值的操作处理并不会影响到外部传入的基本数据类型就像钞票和印钞票的模子, 我把印好的钞票给你,你对钞票进行的的涂改,修剪并不会对我的钞票模子有任何影响引用数据类型作为函数参数传递时, 传递的是对象的引用地址, 因此函数内部对对象的操作处理会影响

2020-10-19 15:23:13 291

原创 1.Go时间模块学习

文章目录time 模块使用1.1关于当前时间1.2关于时间戳1.3 关于时间间隔1.4 时间加减关系1.5 使用定时器1.6 时间格式化1.7 计算代码执行耗时time 模块使用1.1关于当前时间func main() { now := time.Now() // 获取当前时间对象 year := now.Year() // 获取当前年份 month := now.Month() // 获取当前月份 day := now.Day() // 获取当前日 hour

2020-07-23 00:02:18 163

原创 MySQL 学习笔记3 -- 常用查询方式

文章目录0.本篇博客核心内容1. 普通条件查询2. 子查询3. 内连接查询4. 外连接查询4.1 左外连接查询4.2 右外连接查询5. 自身连接查询0.本篇博客核心内容提供了几种常用的SQL查询模板: 单表, 多表, 自连接1. 普通条件查询假设我们有一张商品表SELECT * # 你想查找商品表的什么字段? * 代表所有字段FROM goods # 你想查找哪一张表的

2020-07-20 21:25:15 106

原创 Spring Boot 对接支付宝支付

文章目录1. 前期准备2. 编码1.配置类, 也可以写到Spring boot配置文件中进行加更灵活2.支付业务Service3. Controller 省略4. 前端小朋友请求获取到返回的脚本直接执行1. 前期准备1.1 注册支付宝开发者账号登录 —> 注册拉到网站下面自行了解文档:ps : 在手机网站支付文档中官方提供了demo代码下载, 可以下载下来跑跑看1.2 进入沙箱说明文档因为我们没有商户资格, 因此要借助沙箱环境模拟一个实际上的测试环境, 待项目上线直接将密钥替换即可

2020-06-17 12:46:35 437

原创 caffeine 实现定时缓存需求

1. 前因因为我们的一个破网站要实现发送短信验证码的需求, 需要对发短信的频率进行限制, 于是就用到了定时缓存, 意思就是将 电话号码(key) 和短信验证码(value) 保存到内存中吧, 要保存 1分钟, 当用户要调用发短信时接口时, 我们先到内存根据电话号码找value是否存在; 因此我们就实现到了1分钟后才能重新发送的功能, 别问我为什么, 问就是穷 !!实现缓存可以 用Redis , Ehcache, Hutool等工具 , 为啥用 Caffeine 呢 ? 因为 简洁强大 !!you

2020-06-15 23:13:34 2100

原创 Mybatis Plus 代码生成器-让上班划水不再是梦

文章目录1. 废话哔哔2. 开搞2.1 核心maven依赖2.2 主要的配置2.3 Mybatis Plus 代码生成器代码1. 废话哔哔不得不说, Mybatis Plus 的代码生成器真是个懒人神器, 它可以根据你的数据库表自动生成Controller + Service + Entity + Mapper 层的代码让你在工作或接私活的过程中爽到飞起; 废话少说,开搞2. 开搞为了避免一些和我一样的菜逼程序员踩坑, 先列出一我的一些环境配置2.1 核心maven依赖 <!-- MP代

2020-06-04 23:15:31 336

原创 Spring Boot配置 Logback 实现Info ,Error日志分别记录到文件

目录1. 关于 Logback2. 具体配置代码1. 关于 Logbacklogback是spring boot的默认集成好的日志框架,因此我们不需要引入依赖, 直接在 resources 文件下面直接建立 日志配置文件 logback- spring.xml2. 具体配置代码<?xml version="1.0" encoding="UTF-8"?><configuration> <!-- 定义日志保存的路径变量,logs是spring boot 配置文件

2020-06-01 20:15:04 2043 2

空空如也

空空如也

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

TA关注的人

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