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

如何禁止使用带有某些注释的类

巫晋鹏
2023-03-14

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

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

我想添加一些类似于Kotlin的“内部”修饰符的东西——一个检查风格规则/注释处理器/测试组件,用于验证消费者应用程序没有导入这些类。

例如,我将它们标记为@ForInternalUsageOnly或放入包com中。奥罗格。迈里布。内部使用

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

共有1个答案

傅英喆
2023-03-14

听起来您应该使用Java9module功能,它的功能指定了在给定模块之外公开的类。

以下是一些可以帮助您开始的参考资料:

  • 了解Java 9模块
  • Java9模块化指南

还有很多教程和视频。

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

 类似资料:
  • 是否有任何可用的PMD或Checkstyle规则可以帮助我禁止在Java代码中使用某些特定的类? 就我而言,我想在所有可能的情况下禁止以下所有行为:

  • 不同的业务应用场景,会有完全不同的非法终端控制策略,常见的限制策略有终端 IP 、访问域名端口,这些可以通过防火墙等很多成熟手段完成。可也有一些特定限制策略,例如特定 cookie、url、location,甚至请求 body 包含有特殊内容,这种情况下普通防火墙就比较难限制。 Nginx 是 HTTP 7 层协议的实现者,相对普通防火墙从通讯协议有自己的弱势,同等的配置下的性能表现绝对远不如防火

  • 我有一个,其中有8个项目,我想显示其中的所有项目,但在特定条件下,用户只能选择前两个项目,因此我编写了程序,如果条件为真,用户选择任何其他选项,则会显示一个消息框,显示然后自动选择默认值。到现在为止,一直都还不错。 但现在的问题是,用户无法通过查看的选项来判断他可以选择哪些选项,因此我想做的是,如果条件为真,那么除前两个选项之外的所有选项都应该被禁用(或灰显或其他),这样用户就可以判断出您无法选择

  • 我想用Java编写一个注释,它在执行带注释的方法之前和之后执行一些东西,类似于Spring中的aspects。 我已经尝试过Spring方面,但它只适用于bean(正如这家伙在这里提到的),我想保持独立于Spring框架。 将字符串写入控制台的简单类: 相关注释: 而我需要像这样的东西(由Spring相位推断) 我想要以下输出: 你好 你好吗 世界 编辑: 我创建了以下方面(没有注释),但它不起作

  • 问题内容: 我的Java应用程序每10秒向mysql服务器查询一次。 我手动将新行插入表中。 而且Hibernate找不到它。 同样,当我手动删除一行时,Hibernate显示该行存在。 我建议这是因为Hibernate缓存。 有什么办法可以禁用它吗? 谢谢! 问题答案: 您是指一级缓存还是二级缓存?使用诸如Ehcache之类的Hibernate二级缓存来缓存与您手动修改的同一表中的行相对应的实体

  • 我正在使用spring boot 2.1.7.Release和spring-kafka 2.2.7.Release.并且我正在使用@KafKalistener注释来创建一个消费者,并且我正在使用消费者的所有默认设置。 根据apache kafka文档,'max.poll.records'的默认值是500。 在这里,我试图理解spring是如何处理记录处理的。现在我的问题是,如果我们已经在主题a上发