当前位置: 首页 > 知识库问答 >
问题:

Sprint-boot-project-我需要获得spring boot应用程序的版本和它所运行的端口

陶泳
2023-03-14

今天我得到了一个需求,在这里我必须创建一个公共模块来公开应用程序的版本,而不改变父应用程序中的任何内容

公共模块groupId:com.mhn.version,artifactid:version-endpoint packaging:jar versionController.java-在这里,我将把REST服务“/version”公开为返回详细信息的GET方法

在任何spring boot应用程序中,如果我将这个jar(module)添加为依赖项,那么在不改变父应用程序中的任何内容的情况下,它应该获取应用程序的artifactId和Version。在本例中为1.0.1-快照

例如,如果我将其作为依赖项添加到spring-boot-sample-1.0.1-snapshot.war应用程序中,如下文pom.xml所述

<groupdId>com.parent.app</groupId>
<artifactId>spring-boot-sample</artifactId>
<version>1.0.1-SNAPSHOT</version>
<packaging>war</packaging>

  <dependencies>
    <dependency>
      <groupId>com.mhn.version</groupId>
      <artifactId>version-endpoint</artifactId>
      <version>1.0</version>
    </dependency>
</dependencies>

那么spring-boot-sample-1.0.1-snapshot必须公开一个服务“/版本”。通过点击该endpoint,它应该返回maven project.artifactid和project.version详细信息

在本例中

{
"artifactId" : "spring-boot-sample"
"version" : "1.0.1-SNAPSHOT"
}

指导我,如果我们有任何第三方罐子,如果没有指导我如何做到这一点。

请注意,我们不会在父应用程序中做任何更改

共有1个答案

柴琨
2023-03-14

spring boot执行器将通过一些项目配置为您做这件事,如文档中所示。修改构建配置,使其看起来如下所示:

<groupdId>com.parent.app</groupId>
<artifactId>spring-boot-sample</artifactId>
<version>1.0.1-SNAPSHOT</version>
<packaging>war</packaging>

<dependencies>
  <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
  </dependency>
</dependencies>

<build>
  <plugins>
    <plugin>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-maven-plugin</artifactId>
      <version>2.2.5.RELEASE</version>
      <executions>
        <execution>
          <goals>
            <goal>build-info</goal>
          </goals>
        </execution>
      </executions>
      ...
    </plugin>
  </plugins>
</build>

将启用来自/acture/info端点的响应,该响应可能如下所示:

{
    "build": {
        "artifact": "spring-boot-sample",
        "group": "com.parent.app",
        "name": "spring-boot-sample",
        "time": "2020-03-06T16:29:01.200Z",
        "version": "1.0.1-SNAPSHOT"
    }
}

如果由于某种原因不能使用引导执行器,则可以通过使用类路径:meta-inf/build-info.properties访问作为资源的文件,读取spring-boot-maven-pluginbuild-info目标在自己的库代码中编写的内容。

 类似资料:
  • 我有一个打包成WAR文件的Spring Boot web应用程序,我希望能够按需运行一些任务(脚本或命令)。例如: 初始化数据库模式 以编程方式为数据库设定种子 新版本应用程序(移动文件、数据库操作等)需要时进行数据迁移 验证存储文件和数据库内容之间的数据完整性 如果这些“命令”可以访问与Web应用程序本身相同的bean(服务,DAO)和模型,则实现起来会容易得多。我希望我必须在某个地方创建一个S

  • 2021-04-21 11:12:26.858信息8064----[主]O.S.Boot.SpringApplication:在桌面上使用Java 15.0.2启动SpringApplication v2.4.5-MNKN1R7,并使用PID 8064(C:\users.m2\repository\org\SpringFramework\boot\spring-boot\2.4.5\spring-

  • 用例: 注意:在android Q之前,一旦权限启用,我们就可以获取外置存储的所有文件。但是在Android SDK-28之后,有了完全不同的文件系统。由于缺乏适当的文件,很难做小任务。

  • 问题内容: 我目前正在运行MySQL数据库。我所有的表都使用表引擎InnoDB。 每个登录我的应用程序的人都可以查看记录,我担心两个用户有时可能同时更新或插入记录。MySQL是否可以优雅地处理这种类型的并发问题,或者这是我必须编写到代码中的东西? 如果必须将其编程到我的代码中,您如何处理这样的并发案例? 问题答案: SQL语句是原子的。也就是说,如果执行以下操作: 在此语句期间,没有人可以更改变量

  • 我用的是Intellij Idea 2020.3.3。我有很多spring boot应用(微服务),我已经运行了将近两年。有一天,我在调试器中启动了它们,现在初始化需要大约200秒,而不使用调试器则需要大约25秒。从一天到下一天没有什么变化-调试模式只是启动了10倍。 我不确定在这里显示哪些信息对诊断这个有帮助。有没有人有一个通用的检查表,列出了通常会导致调试速度如此之慢的东西?不仅仅是初始化--