📑本篇内容:如何理解学习SpringSecurity的自动配置原理以及其拓展——举例进行学习——从0到1教会方法自行学习
📘 文章专栏:前后端分离项目(Vue + SpringBoot)
🎬最近更新:2022年2月16日 SpringSecurity如何理解学习常用拦截器——举例进行学习——从0到1教会方法自行学习~
🙊个人简介:一只二本院校在读的大三程序猿,本着注重基础,打卡算法,分享技术作为个人的经验总结性的博文博主,虽然可能有时会犯懒,但是还是会坚持下去的,如果你很喜欢博文的话,建议看下面一行~(疯狂暗示QwQ)
🌇点赞 👍 收藏 ⭐留言 📝 一键三连 关爱程序猿,从你我做起
📖本文内容
📝SpringSecurity在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

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





