Spring
文章平均质量分 85
xuguofeng2016
这个作者很懒,什么都没留下…
展开
-
spring启动流程 (6完结) springmvc启动流程
SpringMVC的启动入口在SpringServletContainerInitializer类,它是ServletContainerInitializer实现类(Servlet3.0新特性)。SpringMVC将大部分启动逻辑封装在了抽象WebApplicationInitializer中。本文将详细分析ServletContainerInitializer、SpringServletContainerInitializer和WebApplicationInitializer的工作流程。原创 2023-07-26 09:39:42 · 2104 阅读 · 0 评论 -
spring启动流程 (5) Autowired原理
本文将介绍三者Autowire:1. 构造方法参数Autowire、2. 字段和setter方法参数Autowire、3. @Bean方法参数Autowire原创 2023-07-17 12:10:54 · 210 阅读 · 0 评论 -
spring启动流程 (4) FactoryBean详解
实现类对象将被用作创建Bean实例的工厂,即调用getObject()方法返回的对象才是真正要使用的Bean实例,而不是直接将FactoryBean对象作为暴露的Bean实例,本文将简单介绍其实现方式。原创 2023-07-11 09:14:11 · 144 阅读 · 0 评论 -
spring启动流程 (3) BeanDefinition详解
BeanDefinition在Spring初始化阶段保存Bean的元数据信息,包括Class名称、Scope、构造方法参数、属性值等信息,本文将介绍一下BeanDefinition接口、重要的实现类,以及在Spring中的使用示例。原创 2023-07-04 08:17:23 · 599 阅读 · 0 评论 -
spring启动流程 (2) Bean实例化流程
Spring Bean实例化入口在AbstractApplicationContext类的finishBeanFactoryInitialization方法,本文将重点分析Bean实例化流程。原创 2023-07-02 14:55:36 · 156 阅读 · 0 评论 -
spring启动流程 (1) 流程概览
阅读AnnotationConfigApplicationContext源码,分析Spring启动流程。原创 2023-06-26 16:43:34 · 550 阅读 · 0 评论 -
springboot启动流程 (3) 自动装配
在SpringBoot中,EnableAutoConfiguration注解用于开启自动装配功能。本文将详细分析该注解的工作流程。原创 2023-06-21 12:11:27 · 735 阅读 · 0 评论 -
springboot启动流程 (2) 组件扫描
SpringBoot的组件扫描是基于Spring @ComponentScan注解实现的,该注解使用basePackages和basePackageClasses配置扫描的包,如果未配置这两个参数,Spring将扫描该配置类所属包下面的组件原创 2023-06-19 08:54:13 · 1149 阅读 · 0 评论 -
springboot启动流程 (1) 流程概览
本文将通过阅读源码方式分析SpringBoot应用的启动流程,不涉及Spring启动部分(有相应的文章介绍)。本文不会对各个流程做展开分析,后续会有文章介绍详细流程。原创 2023-06-15 09:00:39 · 758 阅读 · 0 评论 -
spring-transaction源码分析(5)TransactionInterceptor事务拦截逻辑
spring-tx的事务拦截逻辑在TransactionInterceptor类,本文将详细分析其实现方式。原创 2023-05-25 08:20:29 · 1007 阅读 · 0 评论 -
spring-transaction源码分析(4)AspectJ和spring-aspects模块
AspectJ是Java语言实现的一个面向切面编程的扩展库,能够基于一定的语法编写Aspect代码,使用ajc编译器将其编译成.class文件,之后在Java程序编写或加载时将Aspect逻辑嵌入到指定的切面。原创 2023-05-16 12:00:10 · 468 阅读 · 0 评论 -
spring-transaction源码分析(3)Transactional事务失效原因
在Transactional方法中使用this方式调用另一个Transactional方法时,拦截器无法拦截到被调用方法,严重时会使事务失效。原创 2023-05-11 09:50:09 · 385 阅读 · 0 评论 -
spring-transaction源码分析(2)EnableTransactionManagement注解
EnableTransactionManagement注解开启spring的注解驱动事务管理功能,通常标注在@Configuration类上面用于开启命令式事务管理或响应式事务管理。本文将详细介绍该注解的属性。原创 2023-05-06 10:22:15 · 681 阅读 · 0 评论 -
spring-transaction源码分析(1)概述和事务传播级别
spring-tx包使用注解驱动和AOP通知将事务开启、提交/回滚、以及复杂的传播机制封装了起来,开发者不再需要编写事务管理的代码,而是可以只关注自己的业务逻辑。本文将简单介绍spring-tx使用步骤以及七种事务传播级别。原创 2023-04-28 12:18:24 · 884 阅读 · 0 评论 -
Spring @Import注解源码分析
Import注解指示导入一个或多个组件类,可以是@Configuration、ImportSelector、ImportBeanDefinitionRegistrar或者其他常规组件。本文将通过阅读源码,分析Import注解的工作流程。原创 2023-04-14 12:57:53 · 243 阅读 · 0 评论 -
Spring AOP源码分析(深入原理)创建通知、切面匹配与创建代理
在之前的三篇文章中已经梳理了spring aop的核心内容:1. AnnotationAwareAspectJAutoProxyCreator的注入;2. AnnotationAwareAspectJAutoProxyCreator获取Advisor集、bean匹配、创建代理等;3. 切面拦截器的执行流程;但是由于时间和个人水平限制,有几个内容记录的不是很详细,比如:- 事件通知何时创建;- cglib代理的原理;- Pointcut如何匹配;本文将继续阅读spring aop源码,并结原创 2023-03-27 13:48:01 · 369 阅读 · 0 评论 -
Spring OpenFeign源码分析(3) 负载均衡与服务发现
在前文,我们了解到feign实现负载均衡需要两个重要的接口:1. ILoadBalancer - 管理可用的服务器集合,实现软负载均衡;2. IRule - 实现负载均衡算法;本文重点介绍这两个接口:1. 主要实现类;2. 注入方式:默认的实现类,可用的实现类;3. 实现类的算法原创 2023-03-18 13:22:07 · 826 阅读 · 0 评论 -
SpringMVC DispatcherServlet源码(0) 目录
DispatcherServlet是Spring MVC的核心组件,他会被注册到Servlet Web容器(例如tomcat)中,接收/*请求,然后做请求分发,调用Controller方法处理请求,接收响应返回给客户端。原创 2023-03-01 16:47:10 · 231 阅读 · 0 评论 -
SpringMVC DispatcherServlet源码(6) 完结 静态资源原理
阅读SpringMVC源码,分析静态资源处理器相关组件:1. 使用SimpleUrlHandlerMapping管理url -> 处理器映射关系;2. spring mvc使用WebMvcConfigurationSupport注入SimpleUrlHandlerMapping组件;3. DelegatingWebMvcConfiguration可以使用WebMvcConfigurer的配置静态资源url pattern原创 2023-03-01 16:28:20 · 400 阅读 · 0 评论 -
SpringMVC DispatcherServlet源码(5) HttpMessageConverter扩展
通过一个对响应体进行加密、对请求体解密的示例,介绍一下自定义HttpMessageConverter的方式:1. 编写类实现HttpMessageConverter接口,read方法中先对请求体解密,之后在做json反序列化;2. write方法先做json序列化,之后再加密;3. 通过WebMvcConfigurer注册原创 2023-02-20 15:58:04 · 492 阅读 · 0 评论 -
SpringMVC DispatcherServlet源码(4) HandlerMapping和HandlerAdapter等组件说明
本文介绍一下与DispacherServlet相关的几个重要组件:HandlerMapping - 管理请求与处理器映射关系;HandlerAdapter - 请求处理器;HandlerMethodArgumentResolver - 处理器方法参数解析器;HandlerMethodReturnValueHandler - 处理器方法返回值处理器;HttpMessageConverter - 请求体、响应体读写转换器;ViewResolver - 视图解析器;HandlerExceptionResolver原创 2023-02-15 11:34:33 · 820 阅读 · 0 评论 -
SpringMVC DispatcherServlet源码(3) 请求分发流程
本文介绍DispatcherServlet的请求转发流程,包括:1. 从HandlerMapping集查找可以处理该请求的执行器链、2. 从HandlerAdapter集查找支持当前请求的Adapter、3. 执行拦截器preHandle方法、4. 处理请求接收ModelAndView返回值、5. 执行拦截器postHandle方法、6. 处理接口返回值、7. 执行拦截器afterCompletion方法原创 2023-02-05 10:30:33 · 459 阅读 · 0 评论 -
SpringMVC DispatcherServlet源码(2) 扫描Controller创建HandlerMapping流程
Spring MVC向容器注册一个RequestMappingInfoHandlerMapping组件,他会扫描容器中的Controller组件,创建RequestMappingInfo并注册HandlerMethod映射关系。本文将阅读Spring MVC源码分析上述流程。原创 2023-01-30 16:53:01 · 779 阅读 · 0 评论 -
Spring @Conditional注解源码分析
通过阅读@Conditional注解、Condition接口、ConditionEvaluator类以及@ConditionalOnProperty(Spring Boot提供)注解源码,深入分析Spring Conditional的实现原理。原创 2023-01-09 08:18:14 · 697 阅读 · 0 评论 -
Spring @ComponentScan注解源码分析
本文将通过阅读spring源码,分析@ComponentScan注解扫描组件的原理。和@Bean注解一样,@ComponentScan注解也是通过ConfigurationClassPostProcessor后置处理器完成扫描工作的。原创 2023-01-04 20:31:26 · 417 阅读 · 0 评论 -
Spring @Bean注解源码分析
本文将通过阅读spring源码,分析@Bean注解导入Bean的原理。从AnnotationConfigApplicationContext对象的创建讲起,因为在创建他的过程中,spring会先注入一系列的处理器,使用这些处理器解析@Configuration Class进而将@Bean标注的方法转为BeanDefinition注入到容器。其他的ApplicationContext实现在原理上也是一致的,只是入口不同而已。原创 2022-12-14 22:06:13 · 789 阅读 · 0 评论 -
spring-aop源码分析(3)完结_执行流程分析
本文详细介绍Spring AOP的执行阶段流程。Cglib代理的代理拦截逻辑在DynamicAdvisedInterceptor中,JDK代理的拦截逻辑在JdkDynamicAopProxy中,本文将从这两个类入手分析Spring AOP的执行阶段流程。原创 2022-12-10 21:35:27 · 794 阅读 · 0 评论 -
spring-aop源码分析(2)_AnnotationAwareAspectJAutoProxyCreator后置处理器
通过阅读AnnotationAwareAspectJAutoProxyCreator后置处理器的源码,分析其解析AOP通知、匹配切入点和创建AOP代理的流程原创 2022-12-05 21:35:31 · 320 阅读 · 0 评论 -
spring-aop源码分析(1)_AnnotationAwareAspectJAutoProxyCreator的引入
本文从@EnableAspectJAutoProxy注解入手,阅读Spring AOP源码,分析一下AnnotationAwareAspectJAutoProxyCreator后置处理器是如何注入到spring中的。原创 2022-11-30 14:42:23 · 284 阅读 · 0 评论 -
spring-tx源码分析(4)_事务通知代理的创建
阅读spring InfrastructureAdvisorAutoProxyCreator类源码,分析spring事务通知的创建过程原创 2022-11-15 22:41:50 · 101 阅读 · 0 评论 -
spring-tx源码分析(3)_EnableTransactionManagement注解
本文将分析TransactionInterceptor类的源码,了解7种传播机制的实现方式。原创 2022-10-30 14:10:36 · 126 阅读 · 0 评论 -
spring-tx源码分析(2)_Import注解+ServiceLog进阶
在 spring-tx源码分析(1)_Import注解 中,了解到Import注解、PointcutAdvisor的基础使用,并且编写了一个ServiceLog的示例程序,本文将继续优化这个程序:支持指定包扫描,指定包下面被ServiceLog注解标注的方法才会进行拦截;兼容spring的原生aop原创 2022-09-29 15:05:19 · 162 阅读 · 0 评论 -
spring-tx源码分析(1)_Import注解
介绍一下EnableTransactionManagement和Import注解,还会编写一个Import示例程序,为后续的spring-tx源码分析做基础原创 2022-09-27 16:13:47 · 169 阅读 · 0 评论 -
mybatis源码之集成springboot原理
结合示例代码、阅读源码,去深入了解mybatis与spring boot集成的底层原理。原创 2022-07-21 19:26:16 · 485 阅读 · 0 评论 -
SpringSecurity实现OAuth2.0 - 授权服务和资源服务分离
基于SpringSecurity实现授权服务器与资源服务器分离的OAuth2.0原创 2022-02-15 16:18:08 · 1407 阅读 · 0 评论 -
SpringSecurity实现OAuth2.0 - 进阶版授权服务
《SpringSecurity实现OAuth2.0_01_基础版授权服务》介绍了如何使用Spring Security实现OAuth2.0授权和资源保护,但是使用的都是Spring Security默认的登录页、授权页,client和token信息也是保存在内存中的。本文将介绍如何在Spring Security OAuth项目中自定义登录页面、自定义授权页面、数据库配置client信息、数据库保存授权码和token令牌。引入依赖需要在基础版之上引入thymeleaf、JDBC、mybatis、mys原创 2022-01-20 13:17:01 · 481 阅读 · 0 评论 -
SpringSecurity实现OAuth2.0 - 基础版授权服务
基于spring security实现简单版的oauth2.0认证服务原创 2022-01-09 19:42:56 · 684 阅读 · 3 评论