如何理解学习SpringSecurity的自动配置原理以及其拓展——举例进行学习——从0到1教会方法自行学习

本文深入解析SpringBoot中SpringSecurity的自动配置原理,从SpringBoot自动装配的基础开始,详细介绍了SecurityAutoConfiguration和SpringBootWebSecurityConfiguration的作用。讲解了SecurityFilterChain在SpringSecurity架构中的角色,以及@ConditionalOnDefaultWebSecurity注解的工作机制。通过阅读源码,理解了如何自定义扩展SpringSecurity的配置。适合希望深入学习SpringBoot和SpringSecurity的开发者参考。

📑本篇内容:如何理解学习SpringSecurity的自动配置原理以及其拓展——举例进行学习——从0到1教会方法自行学习

📘 文章专栏:前后端分离项目(Vue + SpringBoot)

🎬最近更新:2022年2月16日 SpringSecurity如何理解学习常用拦截器——举例进行学习——从0到1教会方法自行学习~

🙊个人简介:一只二本院校在读的大三程序猿,本着注重基础,打卡算法,分享技术作为个人的经验总结性的博文博主,虽然可能有时会犯懒,但是还是会坚持下去的,如果你很喜欢博文的话,建议看下面一行~(疯狂暗示QwQ)

🌇点赞 👍 收藏 ⭐留言 📝 一键三连 关爱程序猿,从你我做起

📝SpringSecurity在SpringBoot中的自动装配原理

⭐SpringBoot的自动装配原理⭐

如果不知道SpringBoot的自动装配原理可以看这里哦~

小付总结的SpringBoot自动装配原理:

SpringBoot的自动装配原理——其实真得就是你想的那么简单

这里简单提一下:其实SpringBoot在整合所有的Spring全家桶时都采用了对应的自动装配配置,那这些自动配置是交给了哪些呢?

读过源码的同学们都知道,在AutoConfigurationImportSelector 类中的一个方法通过调用了SpringFactoriesLoader类中的静态方法loadSpringFactories(ClassLoader classLoader)来加载的自动配置类。

Enumeration urls = classLoader.getResources("META-INF/spring.factories");

所以由此我们可以得知所有的自动配置类都是存在于 spring-boot-autoconfigure-2.6.3.jar!\META-INF\spring.factories中的。

既然我们要分析SpringBoot对于SpringSecurity的自动配置只需要在对应的factories中找到对应的配置类进行分析就好了。

⭐SecurityAutoConfiguration⭐

在对应的spring.factories文件中我们找到了配置SpringSecurity的自动配置类——SecurityAutoConfiguration。如图所示:

在这里插入图片描述

SecurityAutoConfiguration.java源码分析

@Configuration(proxyBeanMethods = false)
@ConditionalOnClass(DefaultAuthenticationEventPublisher.class)
@EnableConfigurationProperties(SecurityProperties.class)
@Import({
   
    SpringBootWebSecurityConfiguration.class, WebSecurityEnablerConfiguration.class,
		SecurityDataConfiguration.class, ErrorPageSecurityFilterConfiguration.class 
评论 6
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Alascanfu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值