微服务架构之Spring Boot(八十九)

2022-05-23 15:48:30 浏览数 (1)

67.1.2扣除“抓住”坐标

Spring Boot通过允许您指定没有组或版本的依赖项(例如, @Grab('freemarker') )来扩展Groovy的标准 @Grab 支持。这样做可以参考

Spring Boot的默认依赖关系元数据来推断工件的组和版本。

默认元数据与您使用的CLI版本相关联。只有当您移动到新版本的CLI时,它才会更改,让您可以控制依赖项版本何时更改。可以在

附录中找到显示默认元数据中包含的依赖关系及其版本的表。

67.1.3默认导入语句

为了帮助减小Groovy代码的大小,自动包含多个 import 语句。请注意前面的示例如何引用 @Component , @RestController

和 @RequestMapping ,而无需使用完全限定名称或 import 语句。

许多Spring注释在不使用 import 语句的情况下工作。尝试运行应用程序以在添加导入之前查看失败的内容。

67.1.4自动主方法

与等效的Java应用程序不同,您不需要在 Groovy 脚本中包含 public static void main(String[] args) 方法。自动创

建 SpringApplication ,编译的代码充当 source 。

67.1.5自定义依赖关系管理

默认情况下,CLI在解析 @Grab 依赖项时使用 spring-boot-dependencies 中声明的依赖关系管理。可以使用 @DependencyManagementBom 注

释配置覆盖默认依赖关系管理的其他依赖关系管理。注释的值应指定一个或多个Maven BOM的坐标( groupId:artifactId:version )。

例如,请考虑以下声明:

@DependencyManagementBom("com.example.custom-bom:1.0.0")

前面的声明在 com/example/custom-versions/1.0.0/ 下的Maven存储库中获取 custom-bom-1.0.0.pom 。

指定多个BOM时,它们将按您声明的顺序应用,如以下示例所示:

@DependencyManagementBom(["com.example.custom-bom:1.0.0",

"com.example.another-bom:1.0.0"])

上面的示例表明 another-bom 中的依赖关系管理会覆盖 custom-bom 中的依赖关系管理。

您可以在任何可以使用 @Grab 的地方使用 @DependencyManagementBom 。但是,为了确保依赖关系管理的一致排序,您最多可以在应用程序中

使用 @DependencyManagementBom 。一个有用的依赖关系管理源(它是Spring Boot的依赖关系管理的超集)是 Spring IO平台,您可以在其中

包含以下行:

@DependencyManagementBom('io.spring.platform:platform-bom:1.1.2.RELEASE')

67.2具有多个源文件的应用程序

您可以对所有接受文件输入的命令使用“shell globbing”。这样做可以让您使用单个目录中的多个文件,如以下示例所示:

$ spring run *.groovy

67.3打包您的应用程序

您可以使用 jar 命令将应用程序打包到一个自包含的可执行jar文件中,如以下示例所示:

$ spring jar my-app.jar *.groovy

生成的jar包含通过编译应用程序和所有应用程序的依赖项生成的类,以便可以使用 java -jar 运行它。jar文件还包含应用程序类路径中的条

目。您可以使用 --include 和 --exclude 添加和删除jar的显式路径。两者都以逗号分隔,并且都以“ ”和“ - ”的形式接受前缀,以表示它

们应该从默认值中删除。默认包括如下:

public/**, resources/**, static/**, templates/**, META-INF/**, *

默认排除如下:

.*, repository/**, build/**, target/**, **/*.jar, **/*.groovy

在命令行上键入 spring help jar 以获取更多信息。

0 人点赞