Arch 测试失败 STANDARD_STREAMS

问题描述 投票:0回答:2

我有遵循 archunit 规则的应用程序,我得到:

NO_CLASSES_SHOULD_ACCESS_STANDARD_STREAMS

失败的规则 - 这意味着我无法使用标准 Java I/O 流。但我可以用什么来代替呢?

如何使用其他 Java 方法而不是标准流来避免这种架构规则?因为我的拱门规则失败了

java stream archunit
2个回答
7
投票

这个 Oracle 博客条目 说:

Library API 还包含 GeneralCodingRules 类,其中包括许多 Java 项目中常见的预定义和自描述静态编码规则,例如:

NO_CLASSES_SHOULD_ACCESS_STANDARD_STREAMS(即 System.out、System.err 和 printStackTrace 方法:改用日志记录库)

所以我认为你需要删除所有 println

System.out.println()


2
投票

文档,即

NO_CLASSES_SHOULD_ACCESS_STANDARD_STREAMS
的javadoc,说:

通常最好的做法是使用正确的日志记录而不是写入控制台

  • 在生产环境中无法配置写入控制台
  • 写入控制台是同步的,可能会导致瓶颈

有关检查此规则的信息,请参阅GeneralCodingRules

您询问如何避免这种架构规则。只需按其说明操作即可:使用日志记录!

© www.soinside.com 2019 - 2024. All rights reserved.