自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

if's Blog

个人博客http://ifyyf.com

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

原创 Spring Security是如何储存认证用户信息的

Spring Security是如何储存认证用户信息的

2023-03-18 18:31:14 1749 1

原创 分库分表与sharding-jdbc

分库分表与sharding-jdbc

2022-09-02 00:37:33 805 1

原创 简单谈谈Feign

本文只是简单粗略的分析一下feign的过程原理

2022-07-23 18:17:44 3251 1

原创 【Java】几个实用的工具类

分享几个实用的工具类MyBatis-Plus分页查询工具类ThreadLocal工具类时间日期处理工具类servlet请求工具类Base64加密解密工具类获取IP工具类

2022-07-22 00:16:00 455

原创 【复习】Java中常见的几种队列

本文不讲具体结构,只粗略讲解如何使用经常看看、防止遗忘

2022-06-20 17:28:57 408

原创 Spring循环依赖难道只能通过两个Setter注入解决嘛?

Spring循环依赖难道只能通过两个Setter注入解决嘛?先说结论:如果存在循环依赖的对象关系的话,位置靠上的类会先进行生命周期的加载所以位置靠上的类必须通过set注入其他属性,这样才不会导致循环依赖的报错前言其实想到这个问题是由于网上给出的结论是于是我便好奇了起来:为什么同样是一个通过Setter注入、一个通过构造器注入,会有两种不同的结果呢?Setter注入与构造器注入首先我们先明确哪种是setter注入,哪种是构造器注入//setter注入@Autowiredprivate

2022-02-24 19:29:36 1013

原创 nginx反向代理的简单使用

nginx反向代理的简单使用文章目录nginx反向代理的简单使用前言用nginx代理的好处nginx部署静态文件静态文件部署打包vue项目放置静态文件配置文件路径nginx部署带有动态请求的项目vue跨域代理apivue项目用nginx部署后刷新出现404反向代理域名到端口域名解析反代域名到端口前言之所以写这篇博文,主要是为了留一点配置信息的记录,以后方便CV大法不讲理论,理论部分可以百度看,本篇博文直接上代码进入实战本篇不讲述nginx的负载均衡,以后有机会再发一篇关于负载均衡的吧用nginx

2022-01-26 00:09:34 458

原创 mybatis的延迟加载机制

mybatis的延迟加载机制延迟加载的含义: 用到的时候才会去进行相关操作Mybatis支持association关联对象和collection关联集合对象的延迟加载区别:association使用场景是一对一的关联查询,collection是一对多的关联查询它的原理是使用CGLIB动态代理创建目标对象的代理对象,当调用目标方法时,进入拦截器方法查看是否有值比如调用user.getAccount(),拦截器invoke()方法发现user.getAccount()是null值,那么就会单独发送

2022-01-17 22:51:48 662

原创 简单谈谈动态代理

简单谈谈动态代理文章目录简单谈谈动态代理什么是代理模式?有哪些代理模式各代理模式的实现前置场景说明问题提出静态代理泛型静态代理新的问题动态代理具体步骤创建代理类Proxy.newProxyInstance动态代理工厂什么是代理模式?为其他对象提供一个代理以控制对某个对象的访问。代理模式是常用的java设计模式,他的特征是代理类与委托类有同样的接口,代理类主要负责为委托类预处理消息、过滤消息、把消息转发给委托类,以及事后处理消息等。代理类与委托类之间通常会存在关联关系,一个代理类的对象与一个委托类的

2022-01-17 20:22:14 384

原创 简单谈谈Redis

简单谈谈Redis文章目录简单谈谈Redis前言什么是NoSQL适用场景不适用场景分布式中的session问题session复制基于cookie管理session黏性——nginxsession集中式管理——redis什么是redis查看安装目录的工具相关知识单线程+多路IO复用对key的操作指令常用数据类型String字符串数据结构指令List列表数据结构指令Set集合数据结构指令Hash哈希数据结构指令Zset有序集合数据结构什么是跳表指令新数据类型bitmaps操作HyperLogLog什么是基数?

2022-01-08 23:04:20 1495

原创 如何让SpringBoot项目启动时执行特定代码

如何让SpringBoot项目启动时执行特定代码文章目录如何让SpringBoot项目启动时执行特定代码前言两个函数接口1.ApplicationRunner接口源码使用方法2.CommandLineRunner接口源码使用方法为什么会被执行?两个接口谁先执行?为什么?举个栗子结果简单源码分析前言(其实直接在main方法里写也不是执行不了)如果只是简单的一些语句,写在main中可能会方便一些但如果需要调用spring容器中的对象可能会要吃瘪,因为main方法是static的,而获取ioc对象不能使

2022-01-07 15:20:46 887

原创 简单谈谈BitMap

简单谈谈BitMap前言对比——bitmap的使用与否在咱们之前的储存结构里,需要O(1)复杂度进行查找时,我们一般习惯于用HashMap或者HashSet如果我们想要储存一个int类型的数据,那么一个数据需要占据4个字节若是想存储一个long类型的数据,那么一个数据需要占据8个字节当数据非常大时,使用HashMap的情况下,内存可能撑不住假设当有10亿个long类型的数据需要去重或者查询某个数据是否在其中时这些数据一共需要 1000000000*8 个字节的数据,也就是**7629MB**

2021-12-24 16:56:35 1230 1

原创 SpringCloud-Alibaba笔记

SpringCloud-Alibaba笔记文章目录SpringCloud-Alibaba笔记前言版本选用主要功能组件如何构建如何使用:引入依赖版本管理规范Nacos服务注册与配置中心nacos和eureka的区别下载安装nacos之服务提供者注册配置9001子模块,注册到nacos配置9002子模块nacos消费者注册和负载均衡配置83子模块、注册和测试负载均衡nacos配置中心之基础配置配置3377配置中心nacos中dataId的匹配规则在nacos界面添加配置测试配置中心及其动态刷新nacos配置中

2021-12-08 00:48:00 561

原创 来一点mysql的面试题

来一点mysql的面试题文章目录来一点mysql的面试题数据库的三范式是什么简述索引的类型和对性能的影响为什么mysql要使用B+树(B和B+树的区别)(重要)B树和B+树的区别B树图示B+树图示使用了B+树有什么优势索引的基本原理mysql聚簇索引和非聚簇索引是什么?有什么区别?聚簇索引非聚簇索引区别聚簇索引的特点为什么主键索引比普通索引性能高?mysql的回表是什么?什么是回表?主键索引效率更快的原因索引覆盖MyISAM与InnoDB对比mysql锁有哪些?如何理解事务的基本特性和隔离级别(重要)基本

2021-11-27 16:12:19 3773 2

原创 简单谈谈MySQL的事务

简单谈谈MySQL的事务文章目录简单谈谈MySQL的事务事务的基本特性和隔离级别基本特性 ACID4个隔离级别隔离级别中可能出现的问题ACID是靠什么保证的什么是MVCCreadview是什么MVCC是如何实现不可重复读和可重复读的mysql的原子性和持久性是如何实现的当前读、快照读,到底读的是什么共享锁、排他锁事务的基本特性和隔离级别基本特性 ACID事务的基本特性就是ACIDACID,是指数据库管理系统(DBMS)在写入或更新资料的过程中,为保证事务(transaction)是正确可靠的,所必

2021-11-25 22:19:16 888

原创 简单谈谈MySQL的索引失效问题

简单谈谈MySQL的索引失效问题文章目录简单谈谈MySQL的索引失效问题前言课程简介mysql逻辑架构简述mysql的架构层次及其功能1、连接层2、服务层3、引擎层4、存储层存储引擎简介MyISAM与InnoDB对比谈谈SQL执行顺序7中join理论谈谈索引什么是索引?索引的优点与缺点优点缺点索引分类单值索引复合索引唯一索引主键索引基本语法创建删除查看索引结构BTree索引Hash索引full-text索引R-Tree索引应不应该创建索引哪些情况需要创建哪些情况不需要创建性能优化分析:SQL性能慢Expl

2021-11-19 16:34:34 795 1

原创 简单谈谈Juc并发编程

Juc笔记前言本课程学习与B站狂神说Java的JUC并发编程本课程的代码都放在了我的个人gitee仓库上了什么是JUC?java.util.concurrent jucjava.util.concurrent.atomic 原子性java.util.concurrent.locks 锁平时业务中可能用Thread或者像Runnable接口实现,没有返回值,而且效率相对于callable较低java.util.concurrent

2021-11-09 19:25:23 558

原创 简单谈谈ConcurrentHashMap

简单谈谈ConcurrentHashMap前言本文学习与B站ConcurrentHashMap底层原理剖析本文只简单讲解ConcurrentHashMap的一些面试题,用于理解ConcurrentHashMap,并不会特别深入如果对于HashMap不熟悉的读者,在阅读本文前可以先阅读我的另一篇博客《简单谈谈HashMap》ConcurrentHashMap的实现原理是什么?jdk7原理JDK7中的ConcurrentHashMap由Segment和HashEntry组成,即Concurren

2021-11-05 20:42:02 464

原创 简单谈谈HashMap

简单谈谈HashMap文章目录简单谈谈HashMap前言hash算法常用的哈希算法hashmap的数据结构jdk1.7和jdk1.8的区别简单讲解过程1.8之后为什么要引入红黑树?什么时候扩容?扩容源码高频集合扩容的信息什么时候转红黑树?HashMap 中 hash 函数是怎么实现的?还有哪些hash函数的实现方式?当两个对象的 hashCode 相等时会怎么样?什么是哈希碰撞,如何解决哈希碰撞?如果两个键的 hashCode 相同,如何存储键值对?HashMap集合类的成员1.序列化版本号2.集合的初始

2021-10-31 15:08:38 1202 4

原创 RocketMQ学习笔记

RocketMQ学习笔记前言以下前言的几个问题选自博主割肉机的博文:一个用消息队列 的人,不知道为啥用 MQ,这就有点尴尬本文学习参考自B站尚硅谷的【尚硅谷】2021新版RocketMQ教程丨深度掌握MQ消息中间件为什么要使用消息队列?解耦传统模式的缺点:系统间耦合性太强,如上图所示,系统A在代码中直接调用系统B和系统C的代码,如果将来D系统接入,系统A还需要修改代码,过于麻烦!中间件模式的优点:将消息写入消息队列,需要消息的系统自己从消息队列中订阅,从而系统A不需要做任何修改

2021-10-25 23:40:21 1414

原创 ElasticSearch笔记

ElasticSearch笔记文章目录ElasticSearch笔记前言下载地址本教程讲解什么ES的概述ES的安装es的启动es-head插件是什么下载安装kibana安装ES的核心概念IK分词器插件添加IK分词器自定义字典REST风格es的基础使用新版方法表格基础测试创建索引并插入文档数据创建指定类型的索引获取信息删除复杂一点的查询单条件带参查询结果过滤结果排序分页查询多条件查询精确查询结果高亮springboot集成es导入依赖创建springboot项目注入RestHighLevelClient到s

2021-10-14 22:28:00 395

原创 单例模式笔记

单例模式前言单例模式是指:确保一个类在任何情况下都绝对只有一个实例,隐藏其构造的方法,并提供一个全局访问点例如ServletContext、ServletConfig、ApplicationContext、DBPool你能记起多少单例?饿汉式,饱汉式,双重检查式,静态内部类式饿汉式缺点:当需要加载的单例对象数量过多时,会造成内存浪费==注:==如果是变成static代码块去new也是没有本质区别的——因为都是一开始就初始化了,不过至少可以放上对应的初始化的操作,还是比原生的要好一点点的/*

2021-09-20 21:32:19 168

原创 Stack类、Queue类和Deque类常用方法(防止忘记)

Stack类栈(Stack)是一种后进先出(LIFO)的数据结构,操作栈的元素的方法有:把元素压栈:push(E)把栈顶的元素“弹出”:pop(E)取栈顶元素但不弹出:peek(E)在Java中,我们用Deque可以实现Stack的功能最后,不要使用遗留类StackQueue类在Java的标准库中,队列接口Queue定义了以下几个方法:int size():获取队列长度;boolean add(E) / boolean offer(E):添加元素到队尾;E remove() / E p

2021-09-12 15:40:10 257

原创 定时自动关机程序/脚本

定时自动关机程序/脚本下载地址exe文件下载bat文件下载图示源码源码是bat脚本文件,利用工具转成了exe文件转换工具链接bat源码@echo offmode con: COLS=100 LINES=40title 定时关机程序COLOR 02clsECHO.:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::ECHO.::

2021-09-09 23:35:41 2862 1

原创 bat文件转exe工具分享

bat文件转exe我们这里用到一个工具Bat_To_Exe_Converter点击下载下载地址安装完后打开是英文界面,修改语言为中文然后打开bat文件,选择好exe文件的图标,然后点击转换即可

2021-09-09 23:31:36 2135 1

原创 windows和linux安装、使用minio服务端

windows和linux安装、使用minio服务端文章目录windows和linux安装、使用minio服务端windows安装minio上传了图片等文件怎么进行访问呢?linux的安装与使用之前一直用的都是windows的minio,但是服务器快过期,打算换到自己的ubuntu系统服务器上去,但是今天下载下来发现minio服务端好像更新了?界面多了很多东西,而且全英文看的也是眼花缭乱的,本次教程是写的windows和linux安装minio服务端的教程windows安装minio进入minio中

2021-09-03 16:46:08 1165

原创 SpringCloud-Netflix笔记

SpringCloud笔记文章目录SpringCloud笔记前言微服务概述springcloud概述版本对比快速开始Eureka服务注册与发现什么是EurekaEureka的基本结构起步自我保护机制注册服务访问所有/单个微服务的信息集群环境搭建CAP原则及对比Zookeeper取舍策略Eureka比Zookeeper好在哪json被解析成了xml?Ribbon:负载均衡及Ribbon什么是RibbonRibbon能干嘛使用Ribbon实现轮询负载均衡自定义Ribbon负载均衡算法Feign负载均衡什么是F

2021-08-31 14:10:01 433

原创 子模块pom依赖无法导入

子模块pom依赖无法导入发现问题今天遇见一个问题,子模块创建后,复制pom依赖,但是在project structure中查看lib库中无内容,证明依赖没有正确导入,但是图片显示已经导入并且与父工程绑定了解决办法左上角File=>Setting,搜素输入Ignored Files可以看见子模块的pom依赖左边被打勾了,也就是被Maven忽略了,自然也就无法导入了,取消勾选再将pom的依赖剪切,重新粘贴,就会自动导入了...

2021-08-25 14:52:24 1990 1

原创 idea的代码突然消失了怎么复原

idea的代码突然消失了怎么复原如果代码丢失,或者移动了,想在idea中复原之前的代码的话,idea有一个local history功能可以进行撤销操作与复原右键文件夹,选择local history,再show history接下来找到代码消失的记录,点击左上角撤销原操作即可复原...

2021-08-24 12:27:37 14912 2

原创 docker的学习笔记

docker学习笔记文章目录docker学习笔记入门核心概念docker能干嘛docker的安装安装docker的卸载配置阿里云加速镜像服务run的执行流程图解常用命令帮助命令镜像命令容器命令图形化界面portainer安装图示commit镜像容器数据卷数据卷的好处数据卷的使用-v 命令DockerFile数据卷的查看数据容器卷入门Docker是一个虚拟环境容器,可以将你的开发环境、代码、配置文件等一并打包到这个容器中,并发布和应用到任意平台中核心概念镜像:打包项目带上环境(镜像)—(docker

2021-08-20 00:18:44 256

原创 一键push的bat脚本

一键push的bat脚本前言每次提交代码都还在收到add,commit和push嘛,试试这款脚本说明默认提交说明:if于2021-08-18~18:00一键提交一键push时,提交说明可自定义,当然也可以自己修改成真·一键提交自动添加提交目录下的所有文件下载地址一键push一键pull注记得改一下后缀名为.bat另存为ANSI格式,不然会乱码修改代码中的默认提交内容代码一键push@echo off@echo // +---------------------

2021-08-18 02:46:57 1156 1

转载 在浏览器地址栏中输入URL后发生了什么

在浏览器地址栏中输入URL后发生了什么前言转载于https://www.cnblogs.com/yanruizhe/p/11462462.html正文基本流程:①查询ip地址②建立tcp连接,接入服务器③浏览器发起http请求④服务器后台操作并做出http响应⑤网页的解析与渲染详细步骤:查询ip地址①浏览器解析出url中的域名。②查询浏览器的DNS缓存。③浏览器中没有DNS缓存,则查找本地客户端hosts文件有无对应的ip地址。④hosts中无,则查找本地DNS服务

2021-08-17 14:56:49 122

原创 Nginx部署vue项目和配置代理

1.nginx安装和启动# 安装nginxsudo apt-get install nginx# 启动sudo service nginx start验证安装# 安装完成后使用nginx -v检查,如果输出nginx的版本信息表明安装成功nginx -v# 如果输出类似于这样的版本号等,证明安装完成nginx version: nginx/1.14.0 (Ubuntu)2.修改nginx配置文件,部署项目查看nginx的配置,linux系统下的配置文件通常会存放在/etc目录下的n

2021-08-03 13:59:06 1503

原创 解决Mysql在分类查询时报1055 - Expression #2 of SELECT list is not in GROUP BY clause and contains nonaggre...

mysql报错 1055前言参考CSDN博主「心肝宝贝甜蜜饯儿」https://blog.csdn.net/loveliness_peri/article/details/88051316参考简书博主[东西汉]https://www.jianshu.com/p/3a4185923963错误描述[Err] 1055 - Expression #2 of SELECT list is not in GROUP BY clauseand contains nonaggregated colum

2021-06-10 23:13:56 575

原创 vue-axios和springboot同时接收(上传)MultipartFile文件和json数据

springboot同时接收MultipartFile文件和json数据话不多说直接贴代码后端用post方式,以@RequestParam接收数据 @PostMapping("/add") public void add(@RequestParam("multipartFiles") MultipartFile[] multipartFiles,@RequestParam("material") String material){}前端api.js中的方法export func

2021-06-04 00:18:45 4001 2

原创 ubuntu安装redis

ubuntu安装redis切换root用户apt-get install redis-server然后y继续就行redis服务会自动启动# 检查Redis服务器系统进程~ ps -aux|grep redisredis 4162 0.1 0.0 10676 1420 ? Ss 23:24 0:00 /usr/bin/redis-server /etc/redis/redis.confconan 4172 0.0 0.0 11064 9

2021-05-24 22:03:00 120

原创 linux后台运行springboot项目

linux后台运行springboot项目直接运行关闭连接会失效java -jar xxxxx-0.0.1-SNAPSHOT.jarctrl+c 可以直接关闭进程后台运行nohup java -jar xxxxx-0.0.1-SNAPSHOT.jar可以直接进行IP端口进行访问也可以使用命令进行查看是否项目已经后台运行。进程查看的命令:ps -ef可以看到项目的进程号13803正在运行。如果需要停止项目的运行直接使用命令:kill 13803(进程号)...

2021-05-24 19:20:22 204

转载 Ubuntu安装mysql

Ubuntu安装mysql0.前言转载于CSDN博主「茗君(Major_s)」https://blog.csdn.net/qq_41375318/article/details/1156933621.更新源sudo apt update2.安装MySql服务器和客户端sudo apt install mysql-server mysql-client3.Ubuntu18.04安装过程中没有设置密码的环节(如果有就下面的不需要做了)sudo cat /etc/mysql/debian

2021-05-24 19:16:02 217

原创 ubuntu使用root用户下载安装jdk和文件上传失败问题

ubuntu下载安装jdk和文件上传失败问题文章目录ubuntu下载安装jdk和文件上传失败问题1.使用root用户1.1 给root用户设置密码:1.2 切换root权限2.下载安装jdk3.配置jdk环境变量3.1 修改 environment 文件3.2 修改 profile 文件3.3 配置立即生效3.4 检查Java命令4.文件上传失败1.使用root用户1.1 给root用户设置密码:命令:sudo passwd root输入密码,并确认密码。1.2 切换root权限输入命令

2021-05-24 18:12:24 896

原创 springboot配置多数据源

springboot配置多数据源1.建库建表1.1 创建数据库db1和数据库db21.2 在数据库db1中创建表db1CREATE TABLE `db1` ( `id` int unsigned zerofill NOT NULL AUTO_INCREMENT, `name` varchar(50) DEFAULT NULL, `age` int unsigned zerofill DEFAULT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB

2021-05-20 22:20:08 340 7

空空如也

空空如也

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

TA关注的人

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