![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Spring
文章平均质量分 91
小柒7
小渣渣一枚
展开
-
Spring可扩展接口总结
文章目录容器刷新前的SpringFactories扩展容器刷新中的可扩展功能`BeanFactoryPostProcessors`工厂的后置处理扩展接口Bean创建的相关可扩展处理器容器刷新后的可扩展功能收尾扩展容器刷新前的SpringFactories扩展Spring启动过程监听扩展接口:SpringApplicationRunListener,实现案例:事件发布器EventPublishingRunListener default void starting() {} default voi原创 2022-04-21 16:06:20 · 846 阅读 · 1 评论 -
SpringMvc源码全解
文章目录一、SpringMVC请求处理流程2、一、SpringMVC请求处理流程SpringMVC的核心组件和请求处理流程如下:1、 DispatcherServlet是SpringMVC中的前端控制器(front controller),负责接收request并将request转发给对应的处理组件。2、HanlerMapping是SpringMVC中完成url到Controller映射的组件。DispatcherServlet接收request,然后从HandlerMapping查找处原创 2021-11-21 20:38:49 · 3836 阅读 · 0 评论 -
Spring源码全解
文章目录1.容器简介什么是容器?IOC/DI2.容器的结构2.1 BeanFactory2.2 ApplicationContext2.2.1 ConfigurableApplicationContext2.2.2 WebApplicationContext3、ApplicationContext 启动流程3.1、prepareRefresh3.2、obtainFreshBeanFactory1.容器简介什么是容器?Java应用中,对象与对象之间往往存在各种复杂的依赖,对象的构建也会变得越来越复杂,如原创 2021-11-08 16:14:05 · 4410 阅读 · 1 评论 -
Spring+AOP+源码解析
文章目录前言本文使用的调试代码IOC 容器管理 AOP 实例ProxyFactory 详解基于注解的 Spring AOP 源码分析闲聊 InstantiationAwareBeanPostProcessor小结之前写过 IOC 的源码分析,那篇文章真的有点长,看完需要点耐心。很多读者希望能写一写 Spring AOP 的源码分析文章,这样读者看完 IOC + AOP 也就对 Spring 会有比较深的理解了。今天终于成文了,可能很多读者早就不再等待了,不过主要为了后来者吧。本文不会像 IOC 源码分析原创 2021-10-11 11:28:47 · 111 阅读 · 0 评论 -
Spring+IOC+容器源码分析
Spring 最重要的概念是 IOC 和 AOP,本篇文章其实就是要带领大家来分析下 Spring 的 IOC 容器。既然大家平时都要用到 Spring,怎么可以不好好了解 Spring 呢?阅读本文并不能让你成为 Spring 专家,不过一定有助于大家理解 Spring 的很多概念,帮助大家排查应用中和 Spring 相关的一些问题。本文采用的源码版本是 4.3.11.RELEASE,算是 5.0.x 前比较新的版本了。为了降低难度,本文所说的所有的内容都是基于 xml 的配置的方式,实际使用已经很少人原创 2021-10-11 09:37:26 · 116 阅读 · 0 评论 -
Spring源码分析(五) 事务的源码分析
@[TOC](Spring源码分析(五) 事务的源码分析)1、事务开启在事务的开启注解@EnableTransactionManagement中注册了一个TransactionManagementConfigurationSelector,而selector中有根据事务的模式返回了需要注册的类,默认的话是proxy代理模式。直接进入ProxyTransactionManagementConfiguration代理事务的配置类中,其中主要注册了三个对象TransactionAttributeSou原创 2021-05-25 19:21:27 · 131 阅读 · 2 评论 -
Spring源码分析(三) Bean的创建过程
Bean的创建过程1、整体流程2、核心流程分析2.1、getSingleton2.2、getObjectForBeanInstance2.3、createBean2.3.1、CreateBeanInstance1、整体流程Bean的创建过程开始于AbstractBeanFactory 抽象类public abstract class AbstractBeanFactory extends FactoryBeanRegistrySupport implements ConfigurableBeanFac原创 2021-05-17 20:13:04 · 202 阅读 · 3 评论 -
Spring源码分析(二) SpringContext钩子函数
SpringContext钩子函数1、Aware 接口2、InitializingBean3、BeanPostProcessor4、BeanFactoryPostProcessor5、ImportSelector6、ImportBeanDefinitionRegistrar7、FactoryBean8、ApplicationListenerSpring 提供了非常多的扩展接口,官方将这些接口称之为钩子,这些钩子会在特定的时间被回调,以此来增强 Spring 功能,可以通过这些钩子来实现各种需要的功能。1原创 2021-05-17 17:46:22 · 364 阅读 · 0 评论 -
Spring源码分析(一) ApplicationContext、BeanFactory简介与启动流程
ApplicationContext、BeanFactory简介与启动流程1.容器简介什么是容器?IOC/DI2.容器的结构2.1 BeanFactory2.2 ApplicationContext2.2.1 ConfigurableApplicationContext2.2.2 WebApplicationContext3、ApplicationContext 启动流程1.容器简介什么是容器?Java应用中,对象与对象之间往往存在各种复杂的依赖,对象的构建也会变得越来越复杂,如果这些对象的生命周期全原创 2021-05-17 16:42:56 · 181 阅读 · 0 评论 -
SpringMvc基本组成与源码分析
文章目录一、SpringMVC请求处理流程二、SpringMVC的工作机制三、源代码的分析一、第一步是启动时`url`跟`controller`的解析二、第二步是请求时查找到对应的`mapping`然后使用参数解析器解析参数后执行方法,返回结果本次源码分析基于spring-webmvc-5.2.2.RELEASE.jar一、SpringMVC请求处理流程引用spring in action上的一张图来说明了SpringMVC的核心组件和请求处理流程:①:DispatcherServlet是S原创 2021-04-29 17:45:06 · 279 阅读 · 0 评论 -
SpringBoot中的常用异常处理
异常处理目前暂时只列举:ExceptionHandler:控制器的异常处理ResponseStatus 异常设置异常状态处理AbstractErrorController:继承抽象异常控制器处理全局异常ExceptionHandler使用@RestControllerAdvicepublic class ExceptionController { @ExceptionHandler(ArithmeticException.class) public String hand原创 2020-07-06 23:41:14 · 381 阅读 · 0 评论 -
Interceptor拦截器和Filter过滤器的区别和使用
文章目录拦截器介绍过滤器介绍拦截器使用实例拦截器注意事项拦截器介绍简介:Spring MVC中的拦截器(Interceptor)类似于Servlet中的过滤器(Filter),它主要用于拦截用户请求并作相应的处理。依赖于web框架,在SpringMVC中就是依赖于SpringMVC框架。在实现上,基于Java的反射机制,属于面向切面编程(AOP)的一种运用,就是在service或者一个方法前,调用一个方法,或者在方法后,调用一个方法,比如动态代理就是拦截器的简单实现,在调用方法前打印出原创 2020-07-06 23:17:31 · 497 阅读 · 0 评论 -
Spring源码分析(四) Aop的使用与源码分析
文章目录AOP源码分析@EnableAspectJAutoProxy分析AOP源码分析@EnableAspectJAutoProxy分析从开启AOP注解分析@Target({ElementType.TYPE})@Retention(RetentionPolicy.RUNTIME)@Documented@Import({AspectJAutoProxyRegistrar.class})public @interface EnableAspectJAutoProxy { boolean原创 2020-06-06 23:29:24 · 302 阅读 · 0 评论 -
Spring 基本注解
文章目录1.`Configuration`2.`Bean` `Scope` `Lazy`3.`ComponentScans`1.Configuration配置类注解,等同于配置文件告诉Spring这是一个配置类@Configuration public class MainConfig { }2.Bean Scope Lazy@Bean:给容器中注册一个Bean, id默认是用方法名作为idvalue:指定Bean的idinitMethod: 指定初始化方法destroyMeth原创 2020-06-04 22:18:19 · 749 阅读 · 0 评论