解道jdon.com

解道jdon.com -

一个简单的编译时依赖注入框架

Java 中最流行的依赖注入框架——Spring 和 Guice——是使用反射构建的。这种方法存在一些问题,我相信在大多数情况下编译时解决方案更好。已经有编译时实现(例如  Dagger ),但我想编写  自己的基本实现 。它不是为在实际项目中使用而设计的,而是作为此类实现如何工作的说明性示例。 我看到使用反射进行依赖注入的三个缺陷: 如果某些东西没有按照您的预期连接在一起,则很难调试。单步执行严重依赖反射的代码通常是可怕的。春天是美好的,直到你看到香肠是如何制作的。 在实际运行应用程序之前,您不会发现问题。发现问题的反馈循环比需要的要慢。 有启动成本。在很多情况下,这可能可以忽略..

如果没有按照预期连接,调试将变得困难。Spring和Guice是使用反射构建的,但存在一些问题,编译时解决方案更好。本文介绍了一种编译时实现,使用AutoService、JavaPoet和javax.inject,可以发现并处理每一个用@Singleton注释的类,并计算每个Bean的依赖总数,以此排序。完整项目托管在GitHub上,包含一个示例模块,可帮助快速启动和运行。

相关推荐 去reddit讨论

热榜 Top10

LigaAI
LigaAI
观测云
观测云
eolink
eolink
Dify.AI
Dify.AI

推荐或自荐