本文内容适合刚接触spring security的新手,大神请跳过。spring security是一个用来保护spring应用程序的框架,它在用户访问web程序的时候会进行身份的认证(判断当前用户是谁)和授权(当前用户能访问哪些uri,不能访问哪些uri)。我们经常见到场景:1.访问某些网站时需要先登录用户名和密码;2.当你用自己的用户名密码登录某电商网站后,你只能浏览自己的订单,不能看别人的,
概述:         Spring是一个企业级的开源框架。它提供轻量级的依赖注入、面向切面编程、全方位的整合框架。 下图是Spring框架的组成部分,各部分内容作了简单说明。 依赖注入:         依赖注入是Spring框架的灵魂。它是一种解耦组件之间关系的高层设计模式。 依赖注入案例分析:
Spring Security 是基于web的安全组件,所以一些相关类会分散在 spring-security包和web包中。Spring Security通过自定义Servlet的Filter的方式实现,具体架构可参考官网Spring Security: Architecture这里使用Spring Boot 2.7.4版本,对应Spring Security 5.7.3版本基本架构 首先左侧是
转载 2024-10-11 05:03:35
46阅读
1、先说一下源码解析的过程:JDK-->JRE-->JVM(以openJDK代替)注意:这里要了解jdk和jre和jvm他们分别是什么?以及他们的关系才可以继续。这里先上一章从网上下载的关系图方便理解2、笔者本地的jdk是oraclejdk,jvm所在位置就是安装的jdk。jdk下jre下bin下server下的jvm.dll。也就是F:\Java\jdk\jdk1.7.0_60\jr
转载 2023-07-20 23:44:05
196阅读
SpringSecurity是spring家族中的一份子,关于使用方式我们不多说,我们看下其执行源
原创 2022-12-21 11:45:30
97阅读
概述SecurityContextPersistenceFilter有两个主要任务:在请求到达时处理之前,从Security、
转载 2022-12-01 16:34:12
123阅读
相关源码注释ApplicationContextSpring 5 DefaultResourceLoader 源码注释Spring 5 AbstractApplicationContext 源码注释BeanFactorySpring 5 SimpleAliasRegistry 源码注释Spring 5 DefaultSingletonBeanRegistry 源码注释Spring 5 Factor
转载 9月前
20阅读
概述上一篇我们搭建完Spring源码阅读环境,spring源码深度解析—Spring的整体架构和环境搭建 这篇我们开始真正的阅读Spring的源码,分析spring的源码之前我们先来简单回顾下spring核心功能的简单使用容器的基本用法bean是spring最核心的东西,spring就像是一个大水桶,而bean就是水桶中的水,水桶脱离了水也就没有什么用处了,我们简单看下bean的定义,代
前言SpringSecurity作为一个出自Spring家族很强大的安全框架时长被引用到SpringBoot项目中用作登录认证和授权模块使用,但是对于大部分使用者来说都只停留在实现使用用户名和密码的方式登录。而对于企业的项目需求大多要实现多种登录认证方式,例如一个的登录功能往往需要支持下面几种登录模式:用户名和密码模式手机号和短信验证码模式邮箱地址和邮件验证码模式微信、QQ、微博、知乎、钉钉、支付
转载 2024-03-27 15:42:45
134阅读
深入理解synchronized底层源码 前言 这篇文章从JVM源码分析synchronized的实现逻辑,这样才能更加对synchronized深度的认识。 进程:操作系统资源分配的基本单位。线程:cpu调度的基本单位(真实执行) 一、synchronized的使用场景 synchronized一
转载 2022-06-01 11:19:52
106阅读
JDK1.7和1.8 LinkedList的源码是一样的 public class LinkedList<E> {//e是一个反选,具体的类型要在实例化的时候确定}transient int size = 0;//集合中元素的数量​ private static class Node<E> { E ...
转载 2021-08-15 21:47:00
180阅读
2评论
public abstract class AbstractList<E> extends AbstractCollection<E> implements List<E> { //外部操作数 protected transient int modCount = 0;//0 } public abstract class AbstractSequ
原创 2023-06-21 18:22:11
149阅读
# JavaScript底层源码探秘 JavaScript是一种广泛使用的编程语言,最初被设计用于浏览器中的小脚本,但随着Web的发展,它已经发展成为一种通用编程语言。为了更好地理解JavaScript的魅力,我们可以探索其底层源码的基本工作原理,尤其是在引擎层面的实现。 ## JavaScript引擎的概念 JavaScript引擎是一个将JavaScript代码转化为机器代码并执行的程序
原创 8月前
45阅读
1.HashMap在创建对象的时候值k v 就确定了 public class HashMap<K,V> extends AbstractMap<K,V> implements Map<K,V>, Cloneable, Serializable { //重要属性 static final int D ...
转载 2021-08-22 21:31:00
252阅读
2评论
# 如何实现“Python 底层源码” 在学习Python底层源码的过程中,您将会发现许多Python的核心功能都是由一些底层结构和算法实现的。对于初学者而言,从理解整个流程开始会是一个有效的起点。本文的目标是引导您通过几个步骤,了解如何研究和实现Python的底层源码,并帮助您上手实际的实现。 ## 整体流程 以下是实现“Python底层源码”的基本流程: | 步骤 | 描述
原创 2024-09-16 04:31:35
55阅读
底层原理 - 对象的本质一、Objective-C的本质1、OC的本质OC代码的底层实现其实都是C/C++代码,编译器先把OC代码转换成C/C++代码,接着转成汇编语言,最后转成机器语言最终运行在手机上; 所以OC代码的本质其实就是c/c++代码;OC对象转换过程2、Objective-C的对象、类主要是基于C/C++的什么数据结构实现的?Objective-C的面向对象都是基于C/C++的数据结
转载 2024-09-05 12:46:26
78阅读
一、Redis数据结构1.1 Redis数据结构-动态字符串我们都知道Redis中保存的Key是字符串,value往往是字符串或者字符串的集合。可见字符串是Redis中最常用的一种数据结构。不过Redis没有直接使用C语言中的字符串,因为C语言字符串存在很多问题:获取字符串长度的需要通过运算非二进制安全不可修改Redis构建了一种新的字符串结构,称为简单动态字符串(Simple Dynamic S
# Redisson底层源码实现教程 ## 1. 整体流程 为了帮助你理解Redisson底层源码的实现,下面是一个整体流程的表格,展示了实现的步骤和需要做的事情。 | 步骤 | 描述 | | --- | --- | | 1 | 导入Redisson库和相关依赖 | | 2 | 创建Redisson客户端连接 | | 3 | 选择数据结构(如Map或Set) | | 4 | 对数据结构进行操
原创 2023-10-03 13:13:46
72阅读
在本篇博文中,我们将深入探讨“MySQL底层源码”相关的问题,涵盖从它的背景到技术原理、架构解析、源码分析、案例分析,以及扩展讨论的整体过程。准备好了吗?让我们开始吧! ## 背景描述 在数据库系统中,MySQL作为一种流行的关系型数据库管理系统 (RDBMS),被广泛用于Web应用程序以及数据存储。理解其底层源码,无疑能帮助我们更深入地掌握这一技术,并更好地进行性能优化及故障排查。 四象限
原创 6月前
54阅读
Python中dict和set实现原理Jolly • 2017 年 11 月 05 日python的dict和set设计上是很巧妙的,底层是用c语言编写,哈希表实现,这样确保了高效的数据处理。1、dict的性能远高于list2、list的查询消耗随着查询数量的增大而增大3、dict的查询消耗并不会随着查询数量的增大而增大dict内部实现是根据哈西表来实现的:1、当申明dict变量的时候,就会在内存
  • 1
  • 2
  • 3
  • 4
  • 5