今天我得到了一个需求,在这里我必须创建一个公共模块来公开应用程序的版本,而不改变父应用程序中的任何内容
公共模块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"
}
指导我,如果我们有任何第三方罐子,如果没有指导我如何做到这一点。
请注意,我们不会在父应用程序中做任何更改
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-plugin
的build-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倍。 我不确定在这里显示哪些信息对诊断这个有帮助。有没有人有一个通用的检查表,列出了通常会导致调试速度如此之慢的东西?不仅仅是初始化--