Spring原理以及流程

本文深入探讨了Spring框架的核心原理,包括配置阶段、初始化阶段和运行阶段。在配置阶段,主要涉及web.xml配置、DispatcherServlet及contextConfigLocation。初始化阶段涉及IOC容器的构建,特别是BeanDefinition的加载与解析。运行阶段讲解了请求处理流程。此外,文章还详细阐述了IOC初始化阶段的Resource定位和BeanDefinition的注册,以及DI的概念和实现方式,包括基于XML和注解的DI。最后,文章介绍了注解在Spring中的作用,如@Component、@Repository、@Controller和@Service等。
摘要由CSDN通过智能技术生成

Spring IOC、DI、MVC核心原理

配置阶段

  • web.xml –> DispatcherServlet
  • init-param–> contextConfigLocation classpath:application.xml
  • url-pattern–> /*

初始化阶段

  • init –>加载配置文件
  • IOC容器初始化–>Map

运行阶段

  • doPost/doGet–>request/response
  • 从HandlerMapping去匹配–>找到Method、通过反射机制invoker,再讲返回的结果交付
  • invoker
  • response.getWrite()

多说两句

IOC初始化阶段

  1. BeanDifinition的Resource定位
    • FileSystemResource:以文件的绝对路径方式进行访问资源,效果类似于Java中的File;
    • 以类路径的方式访问资源,效果类似于this.getClass().getResource(“/”).getPath();
    • ServletContextResource:web应用根目录的方式访问资源,效果类似于request.getServletContext().getRealPath(“”);
    • UrlResource:访问网络资源的实现类。例如file: http: ftp:等前缀的资源对象;
    • ByteArrayResource: 访问字节数组资源的实现类。
  2. <
  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Security的原理执行流程可以大致分为以下几步骤: 1. 请求到达应用程序时,先经过Spring Security的过滤链。这个过滤链是由一系列的过滤器组成的,每个过滤器负责处理不同的安全任务。 2. 过滤器链的第一个过滤器是SecurityContextPersistenceFilter。它的主要作用是从Session中获取SecurityContext,并将其绑定到当前的线程上下文中。 3. 接下来是UsernamePasswordAuthenticationFilter过滤器,它用于处理基于用户名和密码的身份验证请求。它会检查请求是否包含了用户名和密码,并将其封装成一个Authentication对象。 4. 然后,Authentication对象将传递给AuthenticationManager进行身份验证。AuthenticationManager是Spring Security的身份验证核心,它负责验证用户的身份。 5. 在身份验证过程中,通过ProviderManager委托给配置的AuthenticationProvider来完成具体的身份验证逻辑。AuthenticationProvider是一个接口,可以由开发人员实现,用于根据具体的身份验证策略来验证用户。 6. 如果身份验证成功,则AuthenticationManager会返回一个已经填充了用户权限信息的Authentication对象。 7. 然后,这个已认证的Authentication对象将传递给AccessDecisionManager进行授权。AccessDecisionManager是Spring Security的授权核心,它负责根据用户的角色和权限决定是否允许访问受保护的资源。 8. 在授权过程中,通过AccessDecisionManager委托给配置的AccessDecisionVoter来进行实际的授权决策。AccessDecisionVoter是一个接口,可以由开发人员实现,用于根据具体的授权策略来决定用户是否有权限访问资源。 9. 最后,如果用户被授权访问资源,则请求将继续处理。否则,将返回相应的错误信息或跳转到相应的错误页面。 需要注意的是,上述流程只是Spring Security的基本流程,具体的执行流程还会根据配置和自定义实现而有所不同。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [Spring Security 中的执行原理流程分析](https://blog.csdn.net/weixin_63835553/article/details/122750865)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [spring security执行原理流程](https://blog.csdn.net/chyanwu68/article/details/115191428)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值