java - 在自定义启动器中访问 spring 应用程序名称
问题描述
我试图在自定义启动器自动配置中访问 spring 应用程序名称。
@Configuration
public class CustomAutoConfiguration {
@Value("${spring.application.name}")
private String appName;
}
spring.factories 作为,
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
co.test.CustomAutoConfiguration
在使用此自定义启动器的应用程序中,我已在bootstrap.yaml
spring:
application:
name: test-app
但是,我看到 appName 是null
. 我的猜测是这与加载顺序有关吗?无论如何要做到这一点?
解决方案
我过去有类似的问题,我通过自动装配解决了org.springframework.core.env.Environment
;像这样的东西:
@Configuration
public class CustomAutoConfiguration {
@Autowired
private Evinronment env;
private String appName;
@PostConstruct
public void initialize(){
this.appName = env.getProperty("spring.application.name");
}
}
未经测试,但它应该可以工作
安杰洛
推荐阅读
- python - ImportError:使用 Python 库时找不到图像--pymrmr
- r - 每日数据的增长率
- apollo - ApolloClient:optimisticResponse 在更新期间变为“未定义”
- python - Upweight 或为下采样的例子增加权重
- python - nsimplify 的容差在符号表达式中无法按预期工作
- c# - .NET Core PDF 和 RTF 文档生成
- c++ - 什么是 std::thread::hardware_concurrency 返回?
- reactjs - 避免 TypeScript 中对象和接口之间的重复标识符
- php - 根据正则表达式替换数组中的数据
- javascript - 对于循环(Java Script),为什么只有单个输出而循环迭代的次数没有那么多?