关于该方法的评论

Spring 团队提供了两种创建新项目的方法,以及一种修改现有项目的方法。我们发现最佳做法是使用 Spring Initializr 生成项目,然后通过 boot add 命令向其添加内容。以下部分将解释为何这是最佳方法:spring-doc.cadn.net.cn

初始化器

创建新 Spring Boot 项目的常用方法是使用位于 start.spring.io 的 Initializr。 Spring CLI 提供了一个命令用于与 Initializr 交互。请参阅 Initializr,但它也提供了其他创建新项目的方法,并解决了向现有项目添加代码或配置的day-2用例。spring-doc.cadn.net.cn

使用 Boot 新版

boot new 命令允许您从源代码仓库中现有的项目创建新项目。 boot new 命令允许您指定一组少量选项以根据您的需求进行自定义(例如更改包名),但它不提供像 Initializr 那样的依赖项选择功能。spring-doc.cadn.net.cn

boot new 的方法是克隆一个现有的仓库,该仓库除了包含项目的依赖项外,还包含完全可运行的代码和配置。 这种方法使您或您的团队成员能够轻松创建多个项目原型,因为它们是源代码仓库中的常规 Spring 项目,可以通过 CI 流程验证其正常工作。 有关更多信息,请参阅 创建新项目spring-doc.cadn.net.cn

使用 Boot 添加

然后,在初始项目创建之后,您可以使用 boot add 命令按需添加额外的代码和依赖项。 该命令会智能地将现有项目合并到您当前的项目中。 与 boot new 命令类似,现有项目是位于源代码仓库中的常规 Spring 项目,可以进行编译并通过 CI 流程验证其正常工作。 有关更多信息,请参阅 “boot add”指南spring-doc.cadn.net.cn

模板代码与配置

或者,您可以通过使用用户自定义命令来添加额外的代码和依赖项,这些命令依赖于使用模板引擎来生成代码和配置。 请参阅 用户自定义命令指南 以获取更多信息。 这种使用模板引擎并让用户轻松贡献调用这些模板的命令的方法,灵感来源于 hygen 项目。spring-doc.cadn.net.cn

结论

虽然这两种添加额外代码和依赖的方法各有其适用场景,但在从零开始创建新项目时,我们发现从可运行的项目起步更为简便。这样不仅能获得公司所需的已批准依赖项,还能直接获取代码、配置和测试用例。 这是一个起点,能够省去选择依赖项以及从教程中复制代码的繁琐工作和不确定性。 通常,那些教程过于基础,既未遵循通用的最佳实践规范,也缺乏测试。spring-doc.cadn.net.cn

使用模板创建新项目可能是一项挑战。在我们看来,为新项目模板化 Java 代码比从现有可运行项目克隆一个新项目更加困难。 创建模板、运行模板,然后编译生成的项目这一循环过程十分脆弱。 然而,我们发现创建更小的代码块和配置更适合采用模板化方法——例如,使用 spring controller new 向当前项目添加控制器,或使用 spring feature new 添加少量文件,如带有 @Controller@Service@Repository 注解的类。spring-doc.cadn.net.cn

您的体验可能有所不同,但 Spring CLI 中提供了这两种类型的代码生成。spring-doc.cadn.net.cn