前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >微服务架构之Spring Boot(八十九)

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

作者头像
用户1289394
发布2022-05-23 15:48:30
4630
发布2022-05-23 15:48:30
举报
文章被收录于专栏:Java学习网Java学习网

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 以获取更多信息。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-05-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Java学习网 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档