通过静态代码分析检测JavaGuice中的所有注入点 更新:

问题描述

我正在使用Java开发一个大型项目,该项目使用Guice作为其依赖项注入框架。 是否可以在该代码中找到所有位置,应将特定对象类型注入到其中? 澄清:通过静态代码分析,而不是在运行时进行。

具体来说,我有一个注释为@Provides的方法。 我想在代码中检测到所有与该方法返回值绑定的地方

更新:

根据this,该作业没有任何现有工具。

没有对Guice进行任何静态分析,以查看您实际上是否对您说过的注释具有绑定。这意味着Guice中的故障在运行时发生。鉴于开发人员可以使用没有被常量引用的字符串,因此Guice还允许您使用自己的注释。

解决方法

注意事项:此解决方案既不完整也不稳健(正如评论中提到的那样),但是在没有更好解决方案的情况下可能就足够了。

为此找到的简单解决方案是使用正则表达式。 例如,如果“ provider”方法返回类Foo,则表达式应为:

@Inject[\s\S]+?\W(Foo)

例如,这不包括嵌套的注入模式,例如用@Provides注释的方法的参数。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...