spring - 获取应用程序名称 Spring boot

标签 spring spring-boot

我正在构建一个模块来将数据保存到数据库中。完成模块后,我会将其制作成一个通用的 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/

相关文章:

spring - Spring PermissionEvaluator 中的@Autowired

java - 处理 Rest API 中未找到的资源

java - 如何在测试中添加日志消息(spring boot)?

tomcat - Spring boot 在运行嵌入式 tomcat 时总是使用外部端口

java - 如何使用 Spring Boot 配置 logback-access.xml

java - 使用 spring boot 设置 Redis sentinel

java - 适用于多个主题的 Spring WebSockets

mysql - 如何删除连接表中的行?

java - Spring Data Mongodb 转换 Joda LocalDateTime

spring - JUnit : my XML file location in @ContextConfiguration isn't found