主要观点:
- 用 ArchUnit 可通过单元测试为架构定义规则,开发者构建应用时应遵循架构,文档不一定被所有人阅读,ArchUnit 是便捷方式,测试违规时会失败。
- 介绍了 ArchUnit 的基础知识、先决条件(架构风格等知识),以基本 Spring Boot 应用为例验证架构规则,包括包依赖检查、排除测试类、层检查等。
- Taikai 库为各种技术提供预定义规则并扩展了 ArchUnit 库,如在示例中展示其各种规则及使用方法,包括出现的问题及解决。
关键信息:
- ArchUnit:可在单元测试中定义架构规则,测试失败时通知开发者架构违规。
- Taikai:提供预定义规则,可快速应用,存在一些配置问题需注意。
- 示例:基本 Spring Boot 应用的包结构及不同规则的验证示例,如包依赖检查、层检查等,以及 Taikai 库在不同示例中的应用及问题。
重要细节:
- 添加
archunit-junit5
依赖用于包依赖检查等测试。 - 通过
@AnalyzeClasses
注解确定要分析的包,@ArchTest
注解定义规则。 - 如
classes().that().resideInAPackage("..service..").should().onlyBeAccessed().byAnyPackage("..controller..", "..service..")
这样的规则定义。 - 排除测试类时使用
importOptions = ImportOption.DoNotIncludeTests.class
。 - ArchUnit 提供的层检查规则及
layeredArchitecture()
的使用。 - Taikai 库的各种规则,如
noUsageOfDeprecatedAPIs
等,以及checkAll
方法用于检查所有规则。 - 对于 Taikai 库的问题,如规则配置错误等,可通过仔细阅读文档和调整配置来解决。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。