![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
spring系列
文章平均质量分 60
介绍spring系列
LSZXZNJ
这个作者很懒,什么都没留下…
展开
-
AOP基本概念
AOP(Aspect-Oriented Programming,面向切面编程)是一种编程范式,用于将横切关注点(如日志记录、安全检查、事务管理等)从业务逻辑中分离出来,以提高代码的模块化程度和可维护性。(顾问)是一个关键的概念,它代表了一个切面(Aspect)的配置信息,决定了切面应该在何时何地执行(即匹配的切入点Pointcut)以及如何执行(即通知Advice)):在连接点上执行的具体操作,如前置通知(Before)、后置通知(After)、环绕通知(Around)等,用于实现切面的具体逻辑。原创 2024-07-03 10:47:00 · 300 阅读 · 0 评论 -
spring aop 初探
JDK动态代理的 InvocationHandler 的实现类为 JdkDynamicAopProxy,其增强功能由 advised 完成。获取 注解的value值,通常返回的是 标记有 @Pointcut 注解的 方法名。针对每个bean,找到所有 没有标记 @Pointcut 注解的方法。对每个方法查找对应的切面,标记 标记 @Around等注解的方法。第一部分,直接查找所有的 Advisor类型的bean。根据切面的类型,返回不同的Advice类型的对象。第二个参数,调用的代理的接口中的方法。原创 2024-06-28 16:45:25 · 1072 阅读 · 0 评论 -
AbstractApplicationContext#refresh
因为 spring boot 启动 servlet模式使用的是 org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext 继承自 org.springframework.web.context.support.GenericWebApplicationContext,因此 这里实际基本等于啥都没做。而 beanfactory 在实例化 时构造。原创 2024-06-26 18:47:17 · 1002 阅读 · 0 评论 -
ConfigurationClassPostProcessor
这个类很复杂。原创 2024-06-26 15:30:32 · 394 阅读 · 0 评论 -
spring cache
org.springframework.boot.autoconfigure.cache.CacheAutoConfiguration 完成了 缓存的 自动配置。最终会将缓存信息写到 org.springframework.cache.support.AbstractCacheManager#cacheMap。在使用时,需要加入 org.springframework.cache.annotation.EnableCaching 注解。缓存类型的枚举顺序,就是使用的优先级。用于生产缓存的key。原创 2024-06-25 14:19:17 · 295 阅读 · 0 评论 -
org.springframework.context.support.PostProcessorRegistrationDelegate#invokeBeanFactoryPostProcessor
然后,再找到所有的BeanDefinitionRegistryPostProcessor,依次处理 PriorityOrdered、Ordered、其他,进行排序后调用 postProcessBeanDefinitionRegistry,然后加入到registryProcessors 集合中。集合变量也挺多的,看着看着就晕了。这个集合,记录了 找到的所有的的BeanDefinitionRegistryPostProcessor,用来在后面调用BeanFactoryPostProcessor时进行过滤。原创 2023-10-08 11:21:42 · 181 阅读 · 0 评论 -
spring boot MVC 流程简单梳理
实际上就是 遍历 List列表 ,而列表的初始化,是在 Servlet第一次加载的init中完成的。首先是 容器启动,把Handler 和 url 之间的映射 加载好。首先从容器中获取,容器中没有获取到时,再从配置文件中获取。这些准备工作做完之后,第一步的 查找 Handler 才能完成。而这些准备工作,也是在应用启动时完成的。找到handler后,再把handler的 所有 mapper方法找到,包装成。所以,在容器启动之后,容器中已经加载了 默认的。在查找handler这一步,是怎么做的呢?原创 2023-05-24 21:56:42 · 1011 阅读 · 0 评论 -
Fegin使用客户端负载均衡器Ribbon
在微服务之间调用,spring cloud 使用 ribbon 来进行负载均衡。如果说 负载均衡 算法,有很多种,那么 ribbon 是怎么拿到 服务列表的呢?那么是怎么从注册中心拿的?FeignClientFactoryBean 实例化时,通过 FeignClientFactoryBean#getObject 来获取代理对象,handler: feign.ReflectiveFeign.FeignInvocationHandler。4. 接口请求时,走负责均衡器,从注册中心获取服务列表。原创 2022-10-13 16:01:27 · 127 阅读 · 0 评论 -
springboot @符号识别不了
Caused by: org.yaml.snakeyaml.scanner.ScannerException: while scanning for the next tokenfound character '@' that cannot start any token. (Do not use @ for indentation) in 'reader', line 3, column 13: active: @active@ ^ at org..原创 2022-03-22 15:00:05 · 1678 阅读 · 0 评论