当前位置: 首页 > 知识库问答 >
问题:

如何使用特定注释来预测类的用法

阴元青
2023-03-14

在我们的组织中,我们有一些微服务和许多库。

有些库定义的“public”类不用于公共用途-仅在多个包中的库内部(因此不能是包私有的)

我想添加一些类似于Kotlin的“内部”修饰符的内容—一个checkstyle规则/注释处理器/测试组件,用于验证使用者应用程序是否不导入这些类。

例如,我将它们标记为@ForInternalUsageOnly或放入包com.ourorg.mylib.internal_usage

什么是非复制粘贴的(例如jar或gradle任务)实现可以验证此类类没有导入?最好是编译级别

共有1个答案

魏风华
2023-03-14

听起来您应该使用Java9模块特性,它可以指定在给定模块之外公开的类。

这里有一些参考资料可以让你开始:

  • 了解Java 9模块

还有很多教程和视频。

虽然使用注释和检查器应该可以实现您的建议,但我不能推荐任何实际示例。

 类似资料:
  • 我正在学习SpringBoot,在参考文档中有一个例子,我有一个问题。文件的以下部分提到 6.使用@SpringBootApplication注释 可以使用单个@SpringBootApplication注释来启用这三个功能,即: @EnableAutoConfiguration:启用Spring Boot的自动配置机制 @ComponentScan:在应用程序所在的包上启用@Component扫

  • 我需要测试验证注释,但看起来它们不起作用。我不确定JUnit是否也是正确的。目前,测试将通过,但您可以看到指定的电子邮件地址是错误的。 JUnit 待测试类别

  • 我已经使用Spring几十年了,但以前从未遇到过这个用例。 是否有方法注入所有带特定注释的bean,例如,所有带服务的bean或所有带自定义注释的bean? 我唯一的想法是注入上下文,获取所有bean并手动过滤。如果这是唯一的方法,Spring是否公开了一种递归扫描类层次结构以查找(元)注释的方法(因为大多数Spring注释都可以用作元注释)?

  • 问题内容: 我想获得应用程序中带有注释的类的完整列表。此操作的最佳机制是什么? ps。例如,JAX-RS实现如何找到所有带有注释的类?我想使用相同的机制。 问题答案: 通常,这是通过称为类路径扫描的过程完成的。通常,类加载器不允许扫描类路径上的所有类。但是通常唯一使用的类加载器是我们可以从中检索目录和jar文件的列表(请参阅getURLs),然后一个个地打开它们以列出可用的类。 这种方法由Scan

  • 我正在寻找一种有效地针对JUnit5集成测试的方法。测试使用gradle运行,所有集成测试类都由自定义类级别注释修饰。我可以根据它们的类名模式或通过使用标记对它们进行分类来筛选它们,但是有没有一种方法可以设置一个针对带有注释的测试的测试套件呢?

  • 问题是我写了简单的注释处理器,它根本不处理类型注释。simple annotations processor的源代码如下所示: 有什么想法如何使用或如何通过SimpleAnnotationsProcessor访问类型注释吗?使用可插入的注释处理API对我来说是不必要的,我认为它会比Java反射有更好的性能。无论如何,我也不知道如何通过Java反射访问类型注释。