Spring框架整体流程

Spring框架是当今java语言领域使用最多的框架,没有之一。与它整合的其他框架也是多如牛毛。就拿mybatis来举个例子,在使用mybatis时我们只需要写个接口,增加点注解(当然也可以使用xml来配置),就可以在项目中操作数据库了,而且还不需要我们自己去开启和关闭事务,对于这些难道大家就没有疑问,系统是如何做到这点的?

疑问我想是有的,但是要解释这些问题就不怎么好搞定了,如果你不懂Spring框架的底层原理,你根本不可能清楚Spring是如何实现上述能力的,当然也就更不可能基于Spring灵活的进行扩展。但是一旦你掌握了Spring框架的核心原理,除了能够轻松弄清楚上述原理,对于很多新的与Spring整合的框架原理,我敢保证你都能游刃有余的进行分析。所以从这篇文章开始,笔者就将来扒一扒Spring的神秘面纱。

 

我们知道Spring是对Bean进行管理的一个容器,如图显示了Spring的大概处理过程,后续笔者也将基于这个整体的处理流程来进行逐一分析:

1、Spring如何定义Bean信息的,又如何知道哪些bean需要被管理,?Bean信息定义对象为BeanDefinition,这里我们将详细讲述BeanDefinition的继承结构以及各个BeanDefinition之间的关系,同时会剖析Spring是如何扫描得到所有需要被管理的BeanDefinition的;

2、实例化,也就是创建对象,这里我们将详细剖析Spring在这里如何推断构造函数,以及Spring提供的扩展点,即实例化前和实例化后两个扩展点的实现原理;

3、属性填充,也就是给实例的属性赋值,这里我们将详细剖析Spring如何判断哪些是属性注入点,以及如何完成属性填充;

4、初始化,初始化到底是什么?它做了哪些事情?以及Spring在这里提供的扩展点,即初始化之前和之后两个扩展点的实现原理;

5、最后就是销毁实例对象,Spring是如何销毁一个对象的,在销毁之前它又做了哪些准备?

6、详细解答几个面试中的常见问题:如何解决循环依赖问题以及AOP是在哪里实现如何实现的?

7、后续我们会陆续剖析Spring与其他框架的整合原理。

Spring Security是一个基于Spring Framework的安全框架,提供了企业级应用程序的安全解决方案,在保护Web应用程序方面非常有用。Spring Security使用声明式配置,可以轻松地配置各种认证(Authentication)和授权(Authorization)方式,可保护Web应用程序。 Spring Security执行的核心流程如下: 1. 认证过滤器链 - 用户访问Web应用程序时,请求将首先到达认证过滤器链。 - 认证过滤器链由多个过滤器组成,每个过滤器都执行不同的操作。 - 每个过滤器都根据规则判断是否需要执行下一个过滤器,直到认证成功或链中的过滤器执行完成。 2. 身份验证管理器 - 在过滤器链检查用户提供的凭据之前,需要一个身份验证管理器。 - 身份验证管理器是负责管理和验证用户凭据的组件。 - 身份验证管理器管理一组认证提供者,每个提供者都可以使用不同的身份验证协议。 3. 认证提供者 - 认证提供者是一个与身份验证管理器合作的组件。 - 每个认证提供者都对特定类型的身份验证进行处理,例如用户名和密码,证书等。 - 认证提供者在完成身份验证后将身份验证对象返回给身份验证管理器。 4. 用户详细信息服务 - 用户详细信息服务是用于获取用户详细信息的组件。 - 使用Spring Security时,您必须实现自己的用户详细信息服务或使用默认的实现。 - 当用户完成身份验证后,用户详细信息服务将返回用户详细信息,例如用户角色和权限。 5. 授权 - 授权是验证用户是否有权限执行特定操作的过程。 - 在Spring Security中,授权由访问决策器完成。 - 访问决策器根据用户的安全信息和应用程序中的授权规则计算用户的访问权限。 - 如果用户具有足够的权限,则可以执行请求的操作,否则访问将被拒绝。 6. 安全上下文的创建和管理 - 安全上下文是存储用户身份验证和授权数据的地方。 - 在Spring Security中,安全上下文由安全上下文持有者进行管理。 - 安全上下文持有者允许您从任何地方访问和更新安全上下文。 - 在处理用户请求之前,安全上下文持有者会创建安全上下文。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值