自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 收藏
  • 关注

原创 集合封装类

【代码】集合封装类。

2024-03-20 09:45:48 381

原创 Sa-token深入

1.Sa-Token-SSO 单点登录模块什么是单点登录?解决什么问题?举个场景,假设我们的系统被切割为N个部分:商城、论坛、直播、社交…… 如果用户每访问一个模块都要登录一次,那么用户将会疯掉, 为了优化用户体验,我们急需一套机制将这N个系统的认证授权互通共享,让用户在一个系统登录之后,便可以畅通无阻的访问其它所有系统。单点登录——就是为了解决这个问题而生!简而言之,单点登录可以做到: 在多个互相信任的系统中,用户只需登录一次,就可以访问所有系统。架构选型Sa-Token-SSO 由简入难划分

2024-03-13 23:38:19 1349

原创 Sa-Token基本到深入操作

1.Sa-Token 介绍Sa-Token 是一个轻量级 Java 权限认证框架,主要解决:登录认证、权限认证、单点登录、OAuth2.0、分布式Session会话、微服务网关鉴权 等一系列权限相关问题。Sa-Token 旨在以简单、优雅的方式完成系统的权限认证部分,以登录认证为例,你只需要:下面展示一些 内联代码片。// 会话登录,参数填登录人的账号id StpUtil.login(10001);无需实现任何接口,无需创建任何配置文件,只需要这一句静态代码的调用,便可以完成会话登录认证。如果

2024-03-13 22:28:03 1711

原创 Security

security

2024-03-08 16:16:23 944 1

原创 zip解压

/ 设置压缩流:直接写入response,实现边压缩边下载。// 添加ZipEntry,并ZipEntry中写入文件流。// 这里,加上i是防止要下载的文件有重名的导致下载失败。// 解决不同浏览器压缩包名字含有中文时乱码的问题。// 注意关闭顺序,否则可能文件错误。// 使用输出流输出输入流的字节。FileItem类对象创建。// 循环将文件写入压缩流。// 设置压缩包的名字。

2023-07-11 09:40:48 74

原创 SSM总结

SpringSpring框架底层源码-Bean的生命周期:要想让一个类成为Bean,首先得让类成为Bean定义----类上带有或者包含有@Component的注解是可以成为Bean定义的或者Bean标签,这种事Xml的方式,这里我们不讲述因为过时了-----首先跟据包路径扫描,所有的类都会被编译成Class对象,这里有Resource对象存储,该对象是一个数组。--------接着遍历每个Class对象,带有或者包含有@Component注解的类会被添加到Bean定义集合去,添加之前会进行一次过滤,虽然该

2022-01-16 00:13:07 230

原创 SpringBoot自动装配原理

2021-08-06 03:33:43 276

原创 内置后置PostProcess处理器深度讲解

个人总结AnnotationConfigApplicationContext的构造方法,进入this方法中,在实例化BeanDefinitionReader的时候会注册很多用于解析注解的Bean定义放入Bean定义集合中,然后走reader.register(annotatedClasses)方法将配置类(带有类似@Configuration注解的类)注册进Bean定义集合中,此时配置类还没有解析成Bean定义。然后会在refresh()方法中调用invokeBeanFactoryPostProces..

2021-08-05 04:34:43 319

原创 IOC容器加载过程和Bean的生命周期深度刨析

首先实例化容器,AnnotationConfigApplicationContext进入该构造方法。然后进入this()方法,这里会默认调用其父类的构造方法会实例化DefaultListableBeanFactory,该类的实现了BeanFactory(Bean工厂)和BeanDefinitionRegistryPostProcessor(注册Bean定义的类),接着初始化一个Bean读取器AnnotatedBeanDefinitionReader,该类做了两件事 注册内置BeanPostProcesso.

2021-08-05 02:51:00 165

原创 Spring源码整体脉络介绍

个人总结:首先有一个读取接口,读取某一个包下的所有类,然后跟据扫描器,扫描器扫描带有@Component或者@Configuration或者xml文件等等的类,然后在跟据注册器将这些类注册成一个个Bean定义放入一个集合中,然后我们的ApplicationContent可以调用Bean工厂的后置处理器去处理我们的Bean定义,(记住ApplicationContent实现了BeanFactory接口),然后我们的BeanFactory使用简单的工厂设计模式通过getBean方法生产Bean(getBe..

2021-08-04 04:20:28 204

原创 Tomcat长连接底层源码实现

长连接就是Http长连接,在http请求头里面有一个非常重要的参数Connection:keep-alive,如果一个http请求带上了这个参数就代表了这是一个长连接浏览器发送数据必须建立Socket连接,1.浏览器发送请求给Tomcat如果带有keep-alive参数代表tomcat接受请求后不关闭Socket连接,如果是close参数代表接受请求后关闭Socket连接个人理解上面这幅图可以看出,服务器与服务器之间通讯必循遵循TCP协议建议Socket连接,服务器与服务器之间发送数据都是通

2021-08-04 02:39:39 612

原创 架构师成长图

**架构成长路线**

2021-08-03 04:37:07 130

原创 Tomcat整体架构和处理流程解析

Tomcat整体架构图1.第⼀次从socket中获取数据到InputBuffer中,BIO对应的是InternalInputBuffer,⽗类是AbstractInputBuffer2.然后基于InputBuffer进⾏解析数据3.先解析请求⾏,把请求⽅法,请求uri,请求协议等封装到org.apache.coyote.Request对象中4.org.apache.coyote.Request中的属性都是MessageBytes类型,直接可以理解为字节类型,因为从socket中获取的数据都是字

2021-08-03 04:32:28 460 1

原创 JVM常量池详解

Class常量池与运行时常量池Class常量池可以理解为是Class文件中的资源仓库。Class文件中除了包含类的版本、字段、方法、接口等描述信息外,还有一项信息就是常量池(constantpooltable),用于存放编译期生成的各种字面量(Literal)和符号引用(SymbolicReferences)常量池中主要存放两大类常量:字面量和符号引用字面量符号引用字符串常量池三种字符串操作(Jdk1.7及以上版本)...

2021-08-01 20:06:12 104

原创 垃圾收集器与三色标记

垃圾收集算法标记-复制算法标记-清除算法标记-整理算法垃圾收集器三色标记多标-浮动垃圾漏标-读写屏障

2021-07-30 01:46:33 70

原创 JVM对象创建与内存分配机制

对象的创建1.类加载检查虚拟机遇到一条new指令时,首先将去检查这个指令的参数是否能在常量池中定位到一个类的符号引用,并且检查这个 符号引用代表的类是否已被加载、解析和初始化过。如果没有,那必须先执行相应的类加载过程。 new指令对应到语言层面上讲是,new关键词、对象克隆、对象序列化等。2.分配内存在类加载检查通过后,接下来虚拟机将为新生对象分配内存。对象所需内存的大小在类 加载完成后便可完全确定,为 对象分配空间的任务等同于把 一块确定大小的内存从Java堆中划分出来。这个步骤有两个问题:

2021-05-25 23:17:52 152 1

原创 JVM内存模型深度刨析

JVM体系结构java语言的挂平台特性JVM的整体结构及内存模型概述:类加载子系统将编译好的.class文件加载进jvm1.堆 线程共享, 存放的是对象2.栈 线程私有,存放的是局部变量,也可已存放对象,我喜欢叫它线程栈,因为开启一个main线程就会在栈中划出一小块内存空间,内存空间就是栈空间,栈中存放一个个栈帧(一个方法对应一个栈帧),栈帧中存放 :局部变量表(存放的是局部变量例如 int a=0;存放的就是a),操作数栈(例如int a=0,存放的是0,不过0会被压入局部变量表赋值给局

2021-05-19 21:40:38 165

原创 类加载

**类加载机制**Java类如何进行加载其中loadClass的类加载过程有如下几步: 加载 >> 验证 >> 准备 >> 解析 >> 初始化 >> 使用 >> 卸载加载:在硬盘上查找并通过IO读入字节码文件,使用到类时才会加载,例如调用类的 main()方法,new对象等等,在加载阶段会在内存中生成一个代表这个类的 java.lang.Class对象,作为方法区这个类的各种数据的访问入口验证:校验字节码文件的正确性 准备:

2021-05-18 15:33:05 152 1

原创 2020-12-18

GateWay自定义局部过滤器package com.xinhua.config;import org.springframework.cloud.gateway.filter.GatewayFilter;import org.springframework.cloud.gateway.filter.factory.AbstractGatewayFilterFactory;import org.springframework.http.server.reactive.ServerHttpReques

2020-12-18 12:32:30 447

原创 个人的工具类

日期工具类,简单实用,未经允许,请勿转载package com.itheima.utils;import java.text.SimpleDateFormat;import java.util.*;/**日期操作工具类/public class DateUtils {/*日期转换- String -> Date@param dateString 字符串时间@return Date类型信息@throws Exception 抛出异常*/public static D

2020-12-10 09:19:18 111

空空如也

空空如也

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

TA关注的人

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