Spring 源码 SpringBoot 源码
发表于|更新于|📔学习笔记
Spring容器中的Bean是何时创建的?为什么我们能从容器中获取到?
非懒加载的单实例bean会在容器创建的时候创建。容器内部会创建一个beanFactory,使用beanFactory的doGetBean方法来进行创建,并且在创建后会把bean放入一个单例bean的map集合(singletonObjects)中存储。key就是我们配置的bean的名称。所以我们调用容器的getBean方法来获取对象的时候,其实也是调用了doGetBean方法。就会从对应的集合中获取到之前创建的对象
相关推荐
2023-02-20
JWT认证原理
什么是JWTJWT 简称 JSON Web Token,也就是通过 JSON 形式作为 Web 应用中的令牌,用于在各方面之间安全的将信息作为 JSON 对象传输,在数据传输过程中还可以完成数据加密,签名等相关操作 JWT能做什么授权: 这是使用 JWT 最常见的方案,一旦用户登录,每个后续请求将包括 JWT,从而允许用户访问该令牌允许的路由,服务和资源。单点登录是当前广泛使用 JWT 的一项功能,因为它的开销很小并且可以在不同域中轻松使用 信息交换:JSON Web Token 是在各方面之间安全地传输信息的好办法,因为可以对 JWT 进行签名(例如使用公钥 / 私钥对),所以您可以确保发件人是他们所说的人。此外,由于签名是使用标头和有效负载计算的,因此还可以验证内容是否被篡改 为什么是JWT基于传统的Session认证认证方式我们知道,HTTP 协议本身是一种无状态协议,而这就意味着如果用户向我们的应用提供了用户名和密码来进行用户认证,那么下一次请求时,用户还需要再一次进行用户认证才行,因为根据 HTTP...
2023-02-16
SpringSecurity
简介Spring Security 是 Spring 家族中的一个安全管理框架。相比较于另外一个安全框架 Shiro,它提供了更丰富的功能,社区资源也比 Shiro 丰富。一般来说中大型的项目都是使用 Spring Security 来做安全框架。小项目用 Shiro 比较多,因为相比与 Spring Security,Shiro 的上手更加简单,一般 Web 应用需要进行认证和授权: 认证: 验证当前访问系统的是不是本系统用户,并且要确认具体是哪个用户 授权: 经过认证后判断当前用户有权限进行某个操作 而认证和授权也是 Spring Security 作为安全框架的核心功能 认证Spring Security 的原理其实就是一个过滤器链,内部包含了提供了各种功能的过滤器 UsernamePasswordAuthenticationFilter:负责处理我们在登陆页天蝎了用户名密码的登陆请求 ExceptionTranslationFilter:处理过滤器链中抛出的任何 AccessDeniedException 和...
2022-11-11
SpringBoot 源码解析
SpringBoot启动过程 创建 SpringApplication 保存一些信息 判定当前应用的类型。ClassUtils.Servlet bootstrappers:初始启动引导器(List):去spring.factories文件中找 org.springframework.boot.bootstrappers 找 ApplicationContextInitializer;去spring.factories找 ApplicationContextInitializer 找 ApplicationListener ;应用监听器。去spring.factories找 ApplicationListener 运行 SpringApplication StopWatch 记录应用的启动时间 创建引导上下文(Context环境)createBootstrapContext() 获取到所有之前的 bootstrappers 挨个执行 intitialize() 来完成对引导启动器上下文环境设置 让当前应用进入headless模式。java.awt.headless 获取所有...
2024-02-02
SpringBoot 整合模板引擎 Thymeleaf 页面跳转失败
thymeleaf 不跳转页面,只显示文本 login 123456789@RestControllerpublic class LoginController{ @GetMapping("/login") public String login() { return "login"; }} 原因:@RestController 注解相当于 @ResponseBody 和 @Controller 合在一起的作用。在使用 @RestController 注解 Controller 时,Controller 中的方法无法返回 jsp 页面,或者 html,配置的视图解析器 InternalResourceViewResolver 不起作用,返回的内容就是 return 里的内容。包括在 Mapping 注解使用的同时使用 @ResponseBody 时也会出现同样的问题 解决办法:去除 @ResponseBody 或将含有 Rest 的注解换成对应的原始注解...
2022-10-27
SpringBoot2
Spring与SpringBootSpring能做什么spring的能力 Spring的生态https://spring.io/projects/spring-boot Web开发 数据访问 安全控制 分布式 消息服务 移动开发 批处理 Spring5重大升级响应式编程 内部源码设计基于Java8的一些新特性,如:接口默认实现。重新设计源码架构。 为什么用SpringBootSpring Boot makes it easy to create stand-alone, production-grade Spring based Applications that you can “just run”. 能快速创建出生产级别的Spring应用 SpringBoot优点● Create stand-alone Spring applications ○ 创建独立Spring应用● Embed Tomcat, Jetty or Undertow directly (no need to deploy WAR files) ○ 内嵌web服务器● Provide...
评论