自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Spring Security之认证信息的处理

我们通常将当前用户信息保存在session中,由HttpSessionSecurityContextRepository来管理。在请求进入后,先通过SecurityContextPersistenceFilter将HttpSessionSecurityContextRepository中的SecurityContext恢复到SecurityContextHolder,这样后续的处理就能通过它来获取SecurityContext了。

2024-05-19 19:04:00 919

原创 MybatisPlus优雅实现加密?

成也萧何,败也萧何。MybatisPlus优雅实现字段加解密方案让我吃了不少苦头。只因为他并不改造mybatis,只是提供一些特性。然而,这个方案使用的是半吊子的特性,导致有的方法生效,有的方法不生效,可谓是一言难尽。。。

2024-05-17 23:36:28 916

原创 Spring Security之Session管理

对于UsernamePasswordAuthenticationFilter而言,SessionManagementFilter有点名不副实,因为前者登录成功后就会自己调用SessionAuthenticationStrategy。因此学习session管理,我们的重点是SessionAuthenticationStrategy。

2024-04-21 16:06:55 992

原创 Spring Security之认证过滤器

上回我们探讨了关于Spring Security,着实复杂。这次咱们聊的认证过滤器就先聊聊认证功能。涉及到多方协同的功能,咱分开聊。也给小伙伴喘口气,嘻嘻。此外也是因为只有登录认证了,才有后续的更多功能集成的可能。

2024-03-24 14:38:40 913 1

原创 Spring Security之基于HttpRequest配置权限

前面我们探索了基于方法的权限配置方式,今天我们聊聊最为常用的基于HttpRequest的权限配置方式。

2024-03-24 14:37:42 1390 2

原创 Spring Security之配置体系

Spring Security的配置体系关系着我们能否用好Spring Security,也关系着我们能否按照自己的需要配置Security。同时,他也关系着Spring Security是如何构建安全框架的。

2024-03-24 14:35:37 943

原创 Spring Security之基于方法配置权限

基于方法的权限配置的介绍,包括使用场景和设计以及其实现原理

2024-03-10 18:04:02 1064 1

原创 Spring Security之认证与授权的概念

登录认证与授权的概念,与SpringSecurity的支持

2024-03-10 18:01:22 959

原创 Spring Security概述快速入门

官方概述Spring Security是一款提供认证、授权、以及针对常见(网络)攻击的防御的框架。它为保护命令式和反应式应用程序提供了一流的支持,是保护基于Spring的应用程序的事实标准。从官方的介绍,我们可以看到他就是为基于Spring的应用量身定制的。这也是为什么我们如果使用Spring MVC/Spring Boot继承Spring Security如此丝滑的原因。认证授权、以及针对常见(网络)攻击的防御记住着三个关键词,因为他直接代表着Spring Security提供的三大核心功能/特性。

2024-03-10 18:00:17 994

原创 记RestTemplateBuilder奇诡的坑

RestTemplateBuilder怎么设置都不能跳过检验Https证书。但是直接创建RestTemplate就可以。最终发现RestTemplateBuilder的骚操作,每个方法都重新构建一个Restemplate。一旦断开流式调用,又不重新给变量赋值就会导致设置的属性不生效。因为根本就没设置进去!!!

2023-09-16 11:48:32 223

原创 【探索SpringCloud】服务发现-Nacos服务端数据结构和模型

Nacos2.x的数据是如何存储的?Nacos1.x的逻辑数据结构在Nacos2.x中又是怎么实现的?今天我们就来从源码深度刨析,揭开这两问题的神秘面纱!

2023-09-02 11:47:47 1015 1

原创 【探索SpringCloud】服务发现-Nacos使用

以Nacos为例,了解服务发现,本文先聊聊怎么使用,先入门。后面再聊聊实现。

2023-08-13 11:35:09 759

原创 【探索SpringCloud】服务发现

今天,我们来聊聊SpringCloud服务发现。主要有如下几个议题:一、服务发现的概念与方案;二、SpringCloud是如何与各个服务注册厂商进行集成的。

2023-05-14 21:17:38 842 1

原创 【探索Spring Cloud】SpringCloud与RPC

不管是Spring Cloud还是Spring Cloud Alibaba,愿景都是做微服务框架。而Spring Cloud Alibaba针对Spring Cloud的这些功能/抽象能力提供具体实现。微服务必然是建立在RPC的基础之上构建的,必然包括RPC。

2023-03-18 23:15:06 1501 5

原创 探索SpringMVC-DispatcherServlet

DispatcherServlet的结构分为两个层次。一个是javax的,另一个则是spring的。DispatcherServlet的初始化基于Servlet的生命周期函数init方法初始化的。在该函数中完成WebApplicationContext的初始化,并在上下文refresh之后,初始化DispatcherServlet的相关组件。DispatcherServlet的处理过程大致分为三大步骤初始化请求:包括封装请求、处理重定向参数。

2023-01-21 21:27:26 872

原创 探索SpringMVC-组件之ViewResolver

我们知道视图技术有很多种,例如:JSP、FreeMarker、Thymeleaf等。如果直接操作这些技术,那简直不要太糟糕。为了统一操作,SpringMVC抽象出来两个接口:ViewResolver和View。任何视图技术都需要实现这两个接口

2023-01-18 22:46:43 933

原创 探索SpringMVC-组件之HandlerExceptionResolver

如果理解了[RequestMappingHandlerAdapter](https://blog.csdn.net/Evan_L/article/details/128602901)那么再来理解这个ExceptionHandlerExceptionResolver应该相对简单些,只需要重点理解两个点:1. @ExceptionHandler的出现的位置:@ControllerAdvice和@Controller。2. @ExceptionHandler的分层设计。

2023-01-12 05:50:49 398

原创 探索SpringMVC-HandlerAdapter之RequestMappingHandlerAdapter

在前面理解了参数解析、返回值处理,我们来了解整个RequstMappingHandlerAdapter是怎么设计和串联的。

2023-01-11 15:31:33 705

原创 探索SpringMVC-HandlerAdapter之RequestMappingHandlerAdapter-返回值处理

处理器返回值常用的可以被分为两类:@ResponseBody和视图相关的数据。除此之外,还有响应式的异步请求的数据。这里@ResponseBody和@RequsetBody都是由RequestResponseBodyMethodProcessor(既是参数解析器,也是返回值处理器)处理,都是基于HttpMessageConverter。HandlerAdapter在调用目标处理器后,更多的支持都是为了后续的视图做准备。

2023-01-08 16:40:12 740

原创 探索SpringMVC-HandlerAdapter之RequestMappingHandlerAdapter-参数解析

上回,我们大概讲了下HandlerAdapter。今天带大家来认识一下,我们最常用的RequestMappingHandlerAdapter。不过只能给大家先开个头,讲下参数解析。

2023-01-07 20:30:21 1001

原创 探索SpringMVC-HandlerMapping之RequestMappingHandlerMapping

那么为什么要单独给@RequestMapping实现一个HandlerMapping?这次咱们就来专门看看这个RequestMappingHandlerMapping

2022-12-17 19:10:46 1149

原创 探索SpringMVC-九大组件

今天我们先来看看DispatcherServlet都有哪些组件,分别有什么作用。

2022-12-17 18:27:48 621

原创 探索SpringMVC-DispatcherServlet之HandlerMapping

上回聊了HandlerAdapter,今天继续聊后面的组件。今天的主角是HandlerMapping。

2022-12-11 11:49:56 647

原创 探索SpringMVC-九大组件之HandlerAdapter

上回我们知道,SpringMVC有九大组件。今天我们聊聊负责Handler调用的HandlerAdapter。

2022-12-10 22:19:05 766

原创 探索SpringMVC-web上下文

还记得以前做阅读理解题目的时候吗?老师经常说的一句话是:联系上下文。又比如,你跟淘宝客服聊天,有时候我们总是先把商品发给对方,然后再说这个有没有其他颜色之类的。而这些推动事情继续发展的“背景知识”就可以叫做上下文。回到Spring,像环境配置、bean对象在哪里、事件发布等等,都属于上下文信息。即使,不是直接的进行参与,至少也要能够“联系”到对应的人来处理。例如,BeanFactory。如果从这个角度看的话,还能这样理解,他就是一个信息机构,有点像情报机构。你想要的东西他都能给你找来。

2022-12-02 11:26:23 788

翻译 令人困惑的CAP和ACID措辞

本文翻译自网站:blog.thislongrun.com的一篇博客《[The confusing CAP and ACID wording](http://blog.thislongrun.com/2015/03/the-confusing-cap-and-acid-wording.html)》,之所以会接触到该文章是因为它出现在CAP定理的Wiki百科中的【Refrence参见】

2022-11-06 21:27:52 128

翻译 CAP定理-wiki

当我第一次看到Wiki百科关于CAP定理时,感觉有些原来的疑惑忽然豁然开朗。它甚至引用提出CAP定理的教授大佬的原话,点明可能导致误解的地方。同时,我对比过百度百科的解释,确实不太一样。本文章为Wiki百科的翻译,可能受限于译者水平,希望各位指出有关错误之处。在理论计算机科学中,CAP定理,也以计算机科学家埃里克·布鲁尔的名字命名布鲁尔定理,它声明任何分布式数据存储只能提供以下三种保证中的两种:一致性每次读都能接收到最近的写入(结果)或者一个错误可用性。

2022-11-05 23:37:11 130

原创 maven仓库-阿里镜像-下载问题

相信大家在使用maven的时候都会配置阿里的镜像,以加速jar包的下载。但是当打开开源的源码时,就会报各种包找不到。这很让人恼火。但是其实这是由于我们配置有问题导致的。

2022-09-18 11:59:32 1053

原创 JDK对String操作优化

String就是不可变的值对象,一旦创建就不可更改。这也是我们不管是replace方法,还是substring方法,都是返回一个新的对象的重要原因。String也经常被使用,因此对它的操作跟性能就显得特别重要了。...

2022-07-27 02:44:01 409

原创 ThreadLocal内存泄漏是伪命题?

在研究Mybatis使用多数据源时,发现都是底层的数据源切换逻辑都是基于ThreadLocal。隐约想起,ThreadLocal存在内存泄漏问题。

2022-07-23 23:38:48 179

原创 重新认识Java

说到Java,相信大家都对这么一句口号很熟悉:这也是SUN公司的为宣传Java跨平台特性的口号。但是,回到Java设计之初,他们要怎么实现这个口号呢?下面我们就来简单聊聊。

2022-06-26 17:07:04 239

原创 那些令人懵逼的用户态&内核态

在讨论多线程时,总会不可避免地听到:线程切换损耗、上下文切换,内核态、用户态。这些专有名词还真是不好理解。因为这背后涉及的不仅仅是线程,甚至是计算机硬件与操作系统层面的内容。因此,本文的目的,只是想搞清楚用户态和内核态。...

2022-06-18 23:05:17 514

原创 为什么二进制协议更加高效?

在计算机的世界中,所有的东西都是用二进制表示的。那么,人类语言要想在计算机中进行表示,就需要通过编码。例如在ASCII编码中字母a被表示为0x61=97(十进制),使用8bit来表示一个字符。而在UTF-8编码的unicode字符集,是可变长度的,最多可以用4B=32bit来表示一个字符,例如一个中文字符。因此如果直接用于网络传输,那么需要传输的数据量是比较大的。 有没有办法减少传输的数据呢?当然,那就是二进制协议。既然直接表示人类的自然语言比较费劲,那么是不是可以直接把自然语...

2022-02-28 11:01:55 638

原创 ConcurrentHashMap并发安全的实现原理~java8

前言上一篇聊到Java7,今天来聊聊Java8是怎么保证并发安全的。ConcurrentHashMap in Java8jdk版本:jdk1.8.0_41构造器 /** * Creates a new, empty map with the default initial table size (16). * 创建一个新的空Map,默认初始hash表大小为16(这里依然是延迟实例化,所以构造器中并没有任何代码) */ public Concurrent

2022-02-20 16:40:32 3804 1

原创 ConcurrentHashMap并发安全的实现原理~java7

前言最近看到一些文章,聊到ConcurrentHashMap的时候,总会说:在jdk8之前,ConcurrentHashMap采用的是分段锁来保证并发安全性。而jdk8放弃了分段锁,通过sycronized关键字+CAS来保证并发安全性。虽然大概是这么个意思,但是感觉不够透彻,所以也想斗胆谈谈我的个人见解。ConcurrentHashMap in Java7先说明,我看的是jdk1.7.0_79版本的。默认构造方法 public ConcurrentHashMap() { this

2022-02-19 22:54:49 915

原创 微服务之容错

前言微服务虽然带来了很多好处,但是引入的麻烦也不小。例如:分布式事务,分布式JOB,分布式SESSION等等。今天定个小目标,争取每周学习其中一个小题目。今天先谈谈容错。微服务的容错在微服务架构中,整个系统被拆分为多个独立部署的服务单元。各个服务模块通过rpc调用来完成整个系统的服务功能。那么,对于单一服务而言,不可避免的要面对这个问题:RPC调用失败了怎么办?而导致这个问题的原因可能有:数据问题,导致下游系统失败了。网络出现抖动,导致断线了。发生网络分区了。下游系统挂了。如果说,第一种情

2022-01-16 23:32:51 533

原创 安全认证-OAuth2与Spring

前言你在登录CSDN时,可能会选择微信/QQ/微博等等登录,这时,即使你没有注册过CSDN账号,你同样可以登录。而使用哈喽单车使用支付宝登录也是同样的道理。这时,你已经在使用OAuth2了。什么是OAuth2借一下官方定义:OAuth2.0是一种工业级认证协议。OAuth2.0针对web应用、桌面应用、手机、客厅设备提供特定的授权流程,同时重点关注客户端开发人员的简单性。这个规范及其扩展正在IETF OAuth Working Group中开发。OAuth2的认证方式OAuth提供多种认证方式

2021-11-14 14:32:26 2446

原创 java集合篇

前言看起来集合跟并发安全似乎关系并不大,可能放在一起是因为课时原因吧。集合规约先看看大佬画的类图Collection是最顶层接口,并且继承于Iterable,这意味着所有的集合都可以遍历。Collection有三大子接口:Set、List、Queue。Map不是Collection。数据结构数据结构是指逻辑意义上的数据组织方式,及其相应的处理方式。数据组织方式线性结构例如:数组、List、Set、Queue(即Collection)图结构树结构其实树结构是一种特

2021-11-13 23:50:31 2081

原创 druid连接池 - 长时间阻塞问题排查

前言最近参与一个新项目,从老项目拷贝过来的代码,同样用的druid连接池 + PG。但是新项目却经常出现阻塞的情况,有时候甚至可以阻塞半个小时。一时间傻眼了。。问题排查问题背景我们一共有6个开发同学,由于项目时间还是比较紧张的,所以大部分时间还是在开发,而不会发访问服务器。而当前阶段也还没有提测,没有其他同学的介入。而且每次第二天早上都会出现这种阻塞的情况。请教DBA大佬由于配置跟老项目一模一样,所以第一个反应是数据库出什么问题了?找DBA断断续续排查了好几天(太忙了,主要还是搞开发),最后发现

2021-11-13 11:31:25 6090 4

原创 Java语言你知道或不知道的坑

前言不管是再好的编程语言,如果使用不当,总能出问题。就好像,车再好也架不住司机师傅糟糕的技术啊。浮点数继上一篇对浮点数的题目引发的思考,相信对浮点数潜在的取近似值导致的精度丢失问题都有所认识。那么,我们应该如何应对?尽量不使用浮点数。例如,需要保存币种时,总是以最小单位存储。像人民币,那就以分为单位存储。在需要使用浮点数时,推荐使用BigDecimala. 不要使用BigDecimal(double)构造器,同样会存在近似值问题。推荐使用BigDecimal(String)b. BigD

2021-11-11 01:08:52 393

空空如也

空空如也

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

TA关注的人

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