自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Spring源码(三)Spring Bean生命周期

Bean生命周期流程图。

2023-07-30 11:05:02 423

原创 Spring源码(二)Spring底层架构核心概念解析

BeanDefinition中存在很多属性用来描述一个Bean的特点。

2023-07-27 22:33:09 1052

原创 Spring源码(一)Spring底层核心原理解析

本文章将对以下Spring核心知识进行介绍。

2023-07-25 22:43:07 465

原创 Redis基础复习

Redis 是C语言开发的一个开源高性能键值对的内存数据库,可以用来做数据库、缓存、消息中间件等场景,是一种NoSQL(not-only sql,非关系型数据库)的数据库string是redis最基本的类型,一个key对应一个value。string类型是二进制安全的,意思是redis的string可以包含任何数据,比如jpg图片或者序列化的对象string类型是Redis最基本的数据类型,一个redis中字符串value最多可以是512M。

2023-05-11 21:31:46 1049 1

原创 POI和esayExcel

目前比较流行的就是ApachePoI和阿里巴巴的easyExcel!

2022-07-18 22:13:01 2369

原创 RocketMQ(五)集群RocketMQ搭建

手把手教你搭建RocketMQ集群

2022-04-28 13:04:31 855

原创 RocketMQ(四)消息特殊处理

RocketMQ顺序消息和事务消息

2022-04-24 19:33:32 2123

原创 RocketMQ(三)RocketMQ消息发送

从零开始用Java实现RocketMQ消息发送

2022-04-22 16:31:06 4945

原创 RocketMQ(二)RocketMQ安装部署

注意:安装rocketmq需要提前安装好jdk和maven获取rocketmq wget https://archive.apache.org/dist/rocketmq/4.8.0/rocketmq-all-4.8.0-bin-release.zip

2022-04-22 10:35:11 2414 2

原创 RocketMQ(一)MQ介绍

消息队列(Message Queue,简称MQ),指保存消息的一个容器,本质是个队列。消息队列中间件是分布式系统中重要的组件(单机版也可用:单机版指的是在服务器上安装),主要解决应用耦合,异步消息,流量削锋等问题。实现高性能,高可用,可伸缩和最终一致性架构。使用较多的消息队列有ActiveMQ,RabbitMQ,ZeroMQ,Kafka,MetaMQ,RocketMQ。名词解释把数据放到(push)消息队列叫做生产者从消.

2022-04-21 15:31:03 3025

原创 搭建文件服务器 MinIO

分享一个使用springboot整合minio实现文件上传和下载的示例, 从零开始搭建自己的文件服务器

2022-03-19 19:06:40 6168

原创 hms项目Vue前台(四) nprogress进度条和vuex模块式开发

nprogress进度条加载的时候会有进度条显示,加载完毕没了安装命令cnpm install --save nprogress当请求时候显示,响应后不显示,所以可以在请求响应拦截器使用引入import nprogress from “nprogress”;import ‘nprogress/nprogress.css’ //样式必须引入使用nprogress .start(); //进度条开始nprogress .done(); // 进度条结束也可以在nprogr

2022-03-18 10:37:15 1063

原创 hms项目Vue前台(三) axios二次封装

为什么要进行二次封装?请求拦截器:可以在发请求之前处理一些业务响应拦截器:服务器返回数据后可以处理业务1 安装使用axios1.1 安装axioscnpm install --save axios1.2 src目录创建api/request.js在项目中一般有api文件夹[axios]import axios from "axios";// 1. 创建axios实例const requests = axios.create({ // 配置对象 // 请求路径都带/

2022-03-18 08:30:17 220

原创 SpringSecurity权限控制 鉴权

用户每次访问微服务的时候,先去oauth2.0服务登录,登录后再访问微服务网关,微服务网关将请求转发给其他微服务处理。这是前一篇的Oauth2 认证基本的数据库表user, role, user_role, menu, role_menu1 角色权限加载我们上一节中生成jwt ,第二部分通过Base64解密后:带着权限原来是在user_oauth微服务中UserDetailServiceImpl中写死的。所以我们可以修改这里面的代码设置权限。2 角色权限控制...

2022-03-15 20:02:38 1301

原创 Oauth2 认证

1 简介1.1 基本概念认证:用户访问系统资源时系统要求验证用户的身份信息,身份合法方可继续访问,常见的账号密码登录,验证码登录,指纹登陆授权:用户认证通过后去访问系统的资源,系统会判断用户是否拥有访问资源的权限单点登录 SSO:用户在一个系统中登录,其他任意受信任的系统都可以访问,例如在京东主页登陆了,京东其他页面就不需要再登录,这个功能就叫单点登录。第三方账号登录:第三方系统对用户认证通过1.2 认证解决方案1.2.1 单点登录技术方案分布式系统要实现单点登录,通常将认证系统独立抽

2022-03-15 16:01:22 7719

原创 webApi总结

webApi总结DOM1. DOM简介1.1 什么是DOM1.2 DOM树2 获取元素2.1 根据id获取2.2 根据标签名获取2.3 通过 HTML5 新增的方法获取2.4 获取特殊元素(body,html)3 事件基础3.1 事件三要素3.2 常见的鼠标事件4 操作元素4.1 改变元素内容4.2 修改元素属性4.3 表单元素的属性操作PC端网页特效事件高级移动网页特效BOM本地存储DOM1. DOM简介1.1 什么是DOM文档对象模型(Document Object Model,简称 DOM),

2022-03-05 09:30:33 566

原创 webApi(三)PC端网页特效

PC端网页特效1 元素偏移量 offset 系列1.1 offset概述使用 offset 系列相关属性可以动态的得到该元素的位置(偏移)、大小等获得元素距离带有定位父元素的位置, 如果父元素没有定位就返回距离body的距离获得元素自身的大小(宽度高度)1.2 offset使用(1) 距离带有定位父元素的位置偏移offsetLeftoffsetTop(2) 得到元素的大小(包含padding和margin)offsetWidthoffsetHeight(3) 得到带有定

2022-03-05 09:29:43 249

原创 webApi(二)事件高级

事件高级1 绑定和解绑事件1.1 绑定事件给元素添加事件,称为注册事件或者绑定事件。注册事件有两种方式:传统方式和方法监听注册方式(1)传统注册方式: 利用 on 开头的事件 onclick特点:注册事件唯一性,同一个元素同一个事件只能设置一个处理函数,最后注册的处理函数将会覆盖前面注册的处理函数(2)addEventListener 方法监听注册方式: addEventListener() 方法特点:同一个元素同一个事件可以注册多个监听器按注册顺序依次执行方法和参数eventTarget

2022-03-02 08:55:47 290

原创 webApi (一) DOM操作

webApi 之 DOM操作DOM1. DOM简介1.1 什么是DOM1.2 DOM树2 获取元素2.1 根据id获取2.2 根据标签名获取2.3 通过 HTML5 新增的方法获取2.4 获取特殊元素(body,html)3 事件基础3.1 事件三要素3.2 常见的鼠标事件4 操作元素4.1 改变元素内容4.2 修改元素属性4.3 表单元素的属性操作4.4 样式属性操作4.4.1 element.style 行内样式操作4.4.1 element.className 类名样式操作4.5 样式操作总结4

2022-03-01 08:44:41 603

原创 css高级技巧

css高级技巧1 元素隐藏与显示1.1 display: none1 元素隐藏与显示1.1 display: nonedisplay: none 元素隐藏display: block 除了转化为块级元素外,还有显示元素的意思特点:隐藏之后不再保留位置

2022-02-22 13:41:21 847

原创 MySQL复习(二)MySQL基本数据类型

MySQL基本数据类型常用的字段类型大致可以分为数值类型、字符串类型、日期时间类型三大类1. 数值类型数值类型可以分为整型、浮点型、定点型三小类。1.1 整型(tiny:极小的, small:小的,medium:中等的,big:大的)tinyInt : 1字节smallInt: 2字节mediunInt : 3字节int: 4字节bigInt: 8字节注:int(M)中的 M 代表最大显示宽度,并不是说 int(1) 就不能存储数值10了,不管设定了显示宽度是多少个字符,int 都是占

2021-09-20 12:01:06 129

原创 MySQL复习(一)MySQL架构

MySQL架构MySQL采用的是C/S架构,我们在使用MySQL的时候,都是以客户端的身份,发送请求连接到运行服务端的MySQL守护进程,而MySQL服务器端则根据我们的请求进行处理并把处理后的结果返回给我们1. 连接管理器连接管理器的作用是管理和维持所有MySQL客户端的请求连接,当我们向MySQL发起请求时,连接管理器会负责创建连接并校验用户的权限。对于已经建立的连接,如果没有太久没有发送请求,连接管理器会自动断开连接,我们可以通过设置变量wait_timeout决定多久断开不活跃的连接。2

2021-09-20 11:13:33 71

原创 Netty学习笔记(2)ByteBuffer

1. 测试ByteBuffer1.1 依赖<dependencies> <dependency> <groupId>io.netty</groupId> <artifactId>netty-all</artifactId> <version>4.1.48.Final</version> </depen

2021-09-05 15:15:48 207

原创 Netty学习笔记(1)NIO三大组件

1. Channelchannel 有一点类似于 stream,它就是读写数据的双向通道,可以从 channel 将数据读入 buffer,也可以将 buffer 的数据写入 channel,而之前的 stream 要么是输入,要么是输出,channel 比 stream 更为底层常见的 Channel 有FileChannelDatagramChannelSocketChannelServerSocketChannel2. Bufferbuffer 用来缓冲读写数据,常见的 buff

2021-09-05 13:26:28 132

原创 Mybatis 动态Sql练习

建表CREATE TABLE `student` ( `s_id` varchar(20) NOT NULL, `s_name` varchar(20) NOT NULL DEFAULT '', `s_birth` varchar(20) NOT NULL DEFAULT '', `s_sex` varchar(10) NOT NULL DEFAULT '', PRIMARY KEY (`s_id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 CO

2021-07-14 15:47:07 238 1

原创 try-catch-finally面试题

try catch finally 执行顺序面试题总结执行顺序今天牛客网遇到这个题目,做对了,但是下面的评论却很值得看看public class TestTry { public int add(int a, int b){ try { return a + b; } catch (Exception e) { System.out.println("catch语句"); } finally {

2021-05-26 10:19:35 211

原创 正则表达式学习

今天在公司要用到正则表达式判断一些数据,就看了看博客,记录下学习到的正则表达式吧基本语法正则表达式全部符号解释例子1 手机号要求:(1)或(2)(1)是11位的手机号,其中必须是13 - 19开头(2)是以0开头,区号为3位或者4位,中间 - ,后面7位或者8位 (例如 027-1234567 , 0713-1234567)实现: (0\d{2,3}-\d{7,8})|(^1[3-9]\d{9})2 身份证要求:以非零数字开头, 末尾是小写字母x或者数字, 18 位实现:

2021-05-20 22:00:50 80

原创 springcloud(二) 微服务架构编码构建

微服务架构编码构建1 基础知识1.1 版本2 微服务cloud整体聚合父工程Project2.1 new project2.2 字符编码设置 utf-82.3 pom.xml2.4 父工程创建完成执行mvn:install将父工程发布到仓库方便子工程继承3 cloud-provider-payment8001微服务提供者支付Module模块3.1 建cloud-provider-payment80013.2 改POM3.3 写yml3.4 主启动3.5 数据库3.6 entity3.7 dao3.8 se

2021-05-03 17:24:07 1208 3

原创 springcloud (一)系统架构演变之路

演变过程从传统架构(单点应用)→分布式架构(以项目进行拆分)→SOA架构(面向服务架构)→微服务架构1 传统架构其实就是ssh架构或者ssm架构,属于单点应用,把整个开发业务模块都会在一个项目中开发,分为mvc架构,是模型(model)-视图(view)-控制器(controller)的缩写,这种架构包主要分为dao,controller,service,mapper,util一般只适合1个人或者小团队开发(小项目)一般只适合1个人或者小团队开发(小项目)缺点:耦合度太高,一旦,某个模块不可用,

2021-05-03 16:32:10 173

原创 Object方法

Java是一种面向对象编程语言(尽管不是纯粹的面向对象)。Java类层次结构的顶层是Object类,所有的其他类都隐式的继承于它。因此,所有的类也都从Object中继承了方法,其中最重要的几个方法如下表:方法描述protected Object clone()创建并返回当前对象的一份拷贝protected void finalize()该对象不再被引用时,调用finalize()boolean equals(Object obj)判断另外一个对象是否与当前对象相等

2021-03-19 16:13:34 104

原创 java关键字

final1. 数据声明数据为常量,可以是编译时常量,也可以是在运行时被初始化后不能被改变的常量。对于基本类型,final 使数值不变;对于引用类型,final 使引用不变,不能引用其它对象,但是被引用的对象本身是可以修改的final int x = 1;// x = 2; // cannot assign value to final variable 'x'final A y = new A();y.a = 1;2. 方法声明方法不能被子类重写。private 方法隐式地

2021-03-18 17:45:25 86

原创 第二章:物理层

简介物理层(Physical Layer)是计算机网络OSI模型中最低的一层。物理层规定:为传输数据所需要的物理链路创建、维持、拆除,而提供具有机械的,电子的,功能的和规范的特性。简单的说,物理层考虑的是怎样才能在连接各种计算机的传输媒体上传输数据比特流,而不是具体的传输媒体。如果您想要用尽量少的词来记住这个第一层,那就是“信号和介质”。传输媒介传输媒体也称为传输介质或传输媒介,分为两类:导引型传输媒体和非导引型传输媒体导引型传输媒体:双绞线同轴电缆光缆非导引型传输媒体:无线传输

2021-03-17 14:39:15 99

原创 java运算

参数传递Java中其实是值传递的,只不过对于对象参数,值的内容是对象的引用值传递(pass by value)是指在调用函数时将实际参数复制一份传递到函数中,这样在函数中如果对参数进行修改,将不会影响到实际参数。引用传递(pass by reference)是指在调用函数时将实际参数的地址直接传递到函数中,那么在函数中对参数所进行的修改,将影响到实际参数。1. 基本数据类型 @Test public void test01(){ int x = 3;

2021-03-17 13:39:20 230

原创 String

概述String 被声明为 final,因此它不可被继承。(Integer 等包装类也不能被继承)在 Java 8 中,String 内部使用 char 数组存储数据。public final class String implements java.io.Serializable, Comparable<String>, CharSequence { /** The value is used for character storage. */ private f

2021-03-16 10:14:11 129

原创 第一章:概论

网络把主机连接起来,而互连网(internet)是把多种不同的网络连接起来,因此互连网是网络的网络。而互联网(Internet)是全球范围的互连网。主机通信方式客户-服务器(C/S):客户是服务的请求方,服务器是服务的提供方。cs包含bs对等(P2P):不区分客户和服务器。...

2021-03-14 14:50:13 69

原创 java装箱和拆箱的区别

装箱就是自动将基本数据类型转换为包装器类型(int–>Integer);调用方法:Integer的valueOf(int) 方法。拆箱就是自动将包装器类型转换为基本数据类型(Integer–>int);调用方法:Integer的intValue方法。Integer x = 2; // 装箱 调用了 Integer.valueOf(2)int y = x; // 拆箱 调用了 X.intValue()面试题01:以下代码会输出什么?public void T.

2021-03-10 12:50:55 465 2

原创 CSS响应式布局

简介响应式布局是在2010年5月份提出的一个概念,简而言之,就是一个网站能够兼容多个终端——而不是为每个终端做一个特定的版本。这个概念是为解决移动互联网浏览而诞生的。优缺点优点:1.面对不同分辨率设备灵活性强2.能够快捷解决多设备显示适应问题缺点:1.兼容各种设备工作量大,效率略慢2.代码累赘,会出现隐藏无用的元素,加载时间加长3.其实这是一种折中性质的设计解决方案,多方面因素影响而达不到最佳效果4.一定程度上改变了网站原有的布局结构,会出现用户混淆的情况使用@media media

2021-03-08 16:30:02 173

原创 CSS3弹性盒flex布局模型

传统的布局方式都是基于盒模型的利用display、position、float来布局有一定局限性 ,比如说实现自适应垂直居中 随着响应式布局的流行,CSS3引入了更加灵活的弹性布局模型若想让一个元素变成弹性盒只需要将其父元素.box{ display: flex;}举个栗子<div class="box"> <div class="item1">1</div> <div class="item2">2</div>

2021-03-08 11:14:52 162

原创 2021目标

今天同学发来抢票的小程序,转眼又到了新年开学的时候。直到今天才想静下来总结下2020年和制定2021的目标。回首20202020年实属不易,记得去年的这个时候用思维导图制定了比较详细的任务,完成情况也只是在百分之70左右,寒假也制定了些计划,不过家里春节发生挺多事后来就没心思学习了。2020年的这个时候还一心想从事c++开发,拿着stl,网络编程,MFC学习。后来我们数据库课程设计老师在第5,6周讲到jdbc编程技术的时候,还有前几周学的java swing让我对java产生了浓厚的兴趣。终于决定了选

2021-02-19 22:29:43 129

原创 MyBatisPlus学习笔记

1. 简介官网:https://mp.baomidou.com/MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。2. 特征无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑 损耗小:启动即会自动注入基本 CURD,性能基本无损耗,直接面向对象操作 强大的 CRUD 操作:内置通用 Mapper、通用 Service,仅仅通过少量配置即可实现单表大部分 CRUD 操作,更有强大的条件构造器

2021-02-08 15:53:24 687 2

软件开发文档模板.rar

软件开发模板,从概要设计, 需求分析, 数据库设计,测试等方面

2021-11-20

空空如也

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

TA关注的人

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