Solon 框架启动为什么特别快?

思来想去!可能与 Solon 容器的独立设计有一定关系。

1、Solon 注解容器的运行特点

  • 有什么注解要处理的(注解能力被规范成了四种),提前注册登记
  • 全局只扫描一次,并在扫描过程中统一处理注解相关
  • 扫描注入时,目标有即同步注入,没有时则订阅注入
  • 自动代理。即自动发现AOP需求,并按需动态代理

2、内部结构示意图

3、支持四种注解能力的处理对象:

对象 说明
BeanBuilder 构建器(比如:@Component 注解,如果没有注册此注解的构建器,则会无视)
BeanInjector 注入器(比如:@Inject、@Db、@CloudConfig、@VaultInject)
BeanExtractor 提取器(比如:@Scheduled、@CloudJob)
BeanInterceptor 拦截器(比如:@Tran、@Cache)

Solon Aop 的具体表象:即为注解处理,原则上需要提前埋好切点(不支持表达式 Aop)。开发及应用可见《四种自定义注解开发汇总》

4、关于自动代理

当一个组件(即 @Component 注解的类),其函数上的注解有对应的拦截处理时(即有 AOP 的需求)。此组件会启用动态代理。关于代理,可参考《动态代理的本质》。v2.5.3 后支持

5、容器处理的补充

附:开源仓库

相关推荐
海兰10 分钟前
【第2篇-续】从零开始helloworld使用openAI通用模型的完整实现示例附源代码
java·人工智能·spring boot·alibaba·spring ai
ooseabiscuit11 分钟前
记录 idea 启动 tomcat 控制台输出乱码问题解决
java·tomcat·intellij-idea
执笔画流年呀12 分钟前
多线程及其特性
java·服务器·开发语言
大大杰哥19 分钟前
Docker笔记
java·docker
ch.ju22 分钟前
Java程序设计(第3版)第二章——选择结构
java
llm大模型算法工程师weng23 分钟前
Java高并发架构设计:从理论到实战的全链路解决方案
java·开发语言
CQU_JIAKE32 分钟前
4.17【a]
java
Devin~Y33 分钟前
从Spring Boot到Spring AI:音视频AIGC内容社区Java大厂面试三轮连环问(含Kafka/Redis/安全/可观测性答案)
java·spring boot·redis·spring cloud·kafka·spring security·resilience4j
Rsun0455135 分钟前
14、Java 模板方法模式从入门到实战
java·python·模板方法模式
沐雪轻挽萤42 分钟前
17. C++17新特性-并行算法 (Parallel Algorithms)
java·开发语言·c++