idea中显示no usages不一定是真的没用...
·


前情:
发现好几个方法显示no usages,虽然在idea中没有看见被调用,但是显然这些方法是有用的。那么我的理解是usages而不是use。比如拦截器是spring底层提供的一种机制,只要重写其方法就能完成此功能,不需要被调用。
为什么会出现这种情况?
-
Idea的静态分析局限:
-
Idea通过代码静态分析检测直接调用关系,但Spring的拦截器注册是通过运行时动态绑定的(
registry.addInterceptor本质是将拦截器存入Spring容器内部的链表) -
Idea无法识别这种Spring特有的间接依赖关系
-
-
常见误报场景:
-
拦截器/过滤器通过配置类注册
-
Bean通过
@Autowired注入但未被直接调用 -
XML配置的Bean引用
-
更多推荐



所有评论(0)