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

如何以编程方式访问Spring Boot应用程序的名称?

裴星洲
2023-03-14

我已经使用bootstrap.yml文件定义了一个应用程序名称。

spring:
  application:
    name: abc

如何在运行时/以编程方式获取此应用程序名称?

共有3个答案

居琛
2023-03-14

由于在Spring Boot中引用配置属性时不鼓励使用值注释,并且因为applicationContext。getId() 并不总是返回spring.application的值。名称另一种方法是直接从环境中获取值

private final Environment environment;

...

public MyBean(final Environment environment) {
    this.environment = environment;
}

...

private getApplicationName() {
    return this.environment.get("spring.application.name");
}

另一种可能的方法是创建您自己的ConfigurationProperties类来访问该值。

我并不是说这些是最好的方式,我希望有更好的方式,但这是一种方式。

苏君昊
2023-03-14
@Autowired
private ApplicationContext applicationContext;    
...
this.applicationContext.getId();

请找到这个:

# IDENTITY (ContextIdApplicationContextInitializer)
spring.application.name=
spring.application.index=

在Spring Boot参考手册中。

并遵循该类的源代码:

@Override
public void initialize(ConfigurableApplicationContext applicationContext) {
    applicationContext.setId(getApplicationId(applicationContext.getEnvironment()));
}

默认行为如下:

/**
 * Placeholder pattern to resolve for application name
 */
private static final String NAME_PATTERN = "${vcap.application.name:${spring.application.name:${spring.config.name:application}}}";
邢炯
2023-03-14

您应该能够使用@Value注释访问在属性/YAML文件中设置的任何属性:

@Value("${spring.application.name}")
private String appName;
 类似资料:
  • 问题内容: 我的资源文件中有很多字符串数组,我想根据用户输入以编程方式访问它们。 因此,如果c == 12,则info应该是名称为“ n_12”的字符串数组。有没有办法做到这一点,并且避免对数百种情况进行switch语句? 谢谢 问题答案: 您可以像这样获取资源ID 然后只需使用该ID 在这里看看有关的另一个示例。

  • 本文向大家介绍如何以编程方式“重启” iOS应用程序?,包括了如何以编程方式“重启” iOS应用程序?的使用技巧和注意事项,需要的朋友参考一下 无论如何,您都无法重启iOS应用程序,即使您能够使用某些私有api,您的应用程序也将被Apple拒绝,并且不会被视为App Store版本。

  • 问题内容: 我正在为android应用程序开发自动化测试(使用Robotium)。为了确保测试的一致性和可靠性,我想以干净状态(正在测试的应用程序)开始每个测试。为此,我需要清除应用数据。可以在“设置/应用程序/管理应用程序/ [我的应用程序] /清除数据”中手动完成此操作 以编程方式完成此操作的推荐方法是什么? 问题答案: 您可以使用包管理器工具清除已安装应用的数据(类似于按设备上应用设置中的“

  • 问题内容: 我想使用来测试崩溃报告,但第一步是我需要使用代码在Android中模拟致命崩溃。 任何想法? 问题答案: 更新:也可以尝试这种创建方法, 并将其称为某处/ buttonClick 或直接抛出未捕获的异常 答对了!

  • 我如何以编程方式关闭一个Flutter应用程序?我尝试弹出唯一的屏幕,但结果是黑屏。

  • 问题内容: 有一个网页,我想从中检索某个字符串。为此,我需要登录,单击一些按钮,填充文本框,单击另一个按钮-然后出现字符串。 如何编写Java程序以自动执行此操作?是否有用于此目的的有用库? 谢谢 问题答案: 试试HtmlUnit HtmlUnit是“用于Java程序的GUI更少的浏览器”。它为HTML文档建模,并提供一个API,使您可以调用页面,填写表单,单击链接等,就像在“常规”浏览器中一样。