我正在构建一个模块来将数据保存到数据库中。完成模块后,我会将其制作成一个通用的 JAR,任何人都会调用静态方法。有一个参数,它的名称应用程序名称我不想传递这个值我想在将 jar 添加到任何 Spring Boot 应用程序后动态获取此值,然后任何人调用此静态方法检索名称应用程序动态,因此 Spring Boot 包含该应用程序属性有值 spring.application.name 我想在我的模块中获取这个值它是可行的吗?有可能得到这个值
我搜索并找到了这个实现:
@Value("${spring.application.name}")
private String appName;
我的课:
public class BackEnd {
@Value("${spring.application.name}")
static String applicationName;
private static void saveData(String messsage) {
DAO dao= new DAO()
dao.saveData(messsage,applicationName);
}
}
所以目前
applicationName
值为 null
.这是正确的实现吗?
最佳答案
属性名称是正确的,并被少数 Spring Boot 项目使用。您需要自己定义此属性,因为 Spring Boot 默认为空值,如 docs :
# IDENTITY (ContextIdApplicationContextInitializer)
spring.application.name= # Application name.
您可以使用通常的
application.yml
文件例如spring:
application:
name: MyApp
关于spring - 获取应用程序名称 Spring boot,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49825154/