spring framework
文章平均质量分 82
浮生夢
当有一天,有星光刺破黑洞的昏暗,那是我吞吐天地的余晖,代表着我已映照诸天。当有一天,有玄雷划过星空的浩瀚,那是我拳光的劲风,代表着我已回来。当星河列阵,宇宙星海星光齐绽,那是我在笑,我已复苏,我在归来,我已无敌!
展开
-
SpringBoot自动配置底层源码解析
SpringBoot中众多的条件注解,都是基于Spring中的@Conditional来实现的,所以我们先来用一下@Conditional注解。先来看下@Conditional注解的定义/***/Class原创 2023-05-19 10:24:54 · 899 阅读 · 0 评论 -
SpringMVC底层原理源码解析
因为这三个接收的直接就是Requeset对象,不用SpringMVC做额外的解析,所以比较简单,比较复杂的是RequestMappingHandlerAdapter,它执行的是加了@RequestMapping的方法,而这种方法的写法可以是多种多样,SpringMVC需要根据方法的定义去解析Request对象,从请求中获取出对应的数据然后传递给方法,并执行。RouterFunctionMapping的寻找流程会有些区别,但是大体是差不多的,相当于是一个path对应一个HandlerFunction。原创 2023-05-06 18:25:52 · 2148 阅读 · 0 评论 -
Spring 循环依赖处理之三级缓存设计
如上图,创建A之前需要先创建B,创建B之前需要先创建A,造成循环依赖。由于A没创建完成,所以B再创建的时候再容器中获取不到A对象。如何解决这个问题呢?我们把创建中的对象叫半成品,创建完了的叫成本。处于半成品状态的对象能否直接使用?不能使用。如果此时并不是暴露给外部使用,而是内部程序的调用呢?当需要暴露给外部调用的时候,如果完成了赋值操作就不会有问题了。如果你持有了某一个对象的引用,能否在后续步骤的时候进行赋值操作?可以。本质是半成品状态的对象可以在中间过程中使用,实例化和初始化分开执行。原创 2023-04-21 14:02:39 · 651 阅读 · 0 评论 -
Spring Security 实现 antMatchers 配置路径的动态获取
2,实现 SecurityConfigAttributeLoader (这里也可以从数据库获取)原创 2022-12-26 15:16:55 · 2404 阅读 · 0 评论 -
Spring 常用的一些事件
在spring容器初始化前,会通过SpringApplicationRunListener触发ApplicationStartedEvent事件,在容器实例化完成后触发ApplicationReadyEvent事件。SpringApplication 通过SpringFactoriesLoader从META-INF/spring.factories资源中加载其实现类EventPublishingRunListener。启动事件(按先后顺序)ApplicationStartingEvent这个事件在 Spri原创 2022-12-17 10:52:49 · 1610 阅读 · 0 评论 -
单点登录以及实现(前后端分离和前后端不分离方式)
本文主要使用springSecurity来实现,其他实现请参照其原理自行研究。一,单系统登录机制1、http无状态协议web应用采用browser/server架构,http作为通信协议。http是无状态协议,浏览器的每一次请求,服务器会独立处理,不与之前或之后的请求产生关联,这个过程用下图说明,三次请求/响应对之间没有任何联系但这也同时意味着,任何用户都能通过浏览器访问服务器...原创 2022-11-19 13:31:13 · 2705 阅读 · 1 评论 -
Spring bean配置的六种方式
本文将详细介绍Spring Bean配置的三种不同方式的特点与使用条件。一,Spring 的配置文件概述 其实,Spring的配置文件是Spring容器对Bean进行生产以及关系注入的图纸,他是Spring的基础。如果我们没有配置文件的话,则Spring的容器将无从谈起。Spring 的配置文件是用于指导 Spring 工厂进行 Bean 的生产、依赖关系注入...原创 2019-03-01 17:34:56 · 19676 阅读 · 3 评论 -
spring mvc
1. 框架的作用SpringMVC主要解决了控制器如何接收客户端的请求,并将处理结果响应给客户端的问题。在传统的Java EE开发中,控制器是Servlet,主要存在的问题有:每个Servlet都需要在web.xml中配置,一个完整的项目可能需要大量代码完成所有Servlet的配置,所以,存在配置过多、管理难度大的问题; 由于一个完整的项目中可能有大量的Servlet,则项目启动后,...原创 2019-03-17 17:22:35 · 340 阅读 · 0 评论 -
Spring 依赖注入之 @Autowired 与@Resource的区别
Spring不但支持自己定义的@Autowired注解,还支持几个由JSR-250规范定义的注解,它们分别是@Resource、@PostConstruct以及@PreDestroy。这里只说@Autowired和@Resource注解的区别。1、@Autowired与@Resource都可以用来装配bean. 都可以写在字段上,或写在setter方法上。2、@Autowired默认按...原创 2019-08-13 10:05:30 · 1150 阅读 · 0 评论