gpt4 book ai didi

java - spring boot 无法识别 SPRING_APPLICATION_JSON 环境变量

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:51:37 24 4
gpt4 key购买 nike

我是 spring boot 的新手,有一个非常基本的错误,我显然有一个明显的错误。但我已经进行了 RTM 和文档,但遗漏了一点:

tl/dr

如何使用@Value 注解从“spring 环境”获取值?

上下文

我寻求:

  • 使用环境变量 SPRING_APPLICATION_JSON 将“jdbc 信息”(例如,url/密码/登录名)传递给应用程序/“spring 环境”
  • 在应用程序“后处理上下文”中使用此 jdbc 信息为 jdbc jndi 设置 url/creds/etc

问题

  • 我已经设置了环境变量 SPRING_APPLICATION_JSON,但是 spring boot 似乎没有“启动”

调用程序示例

这两个都失败了:

SPRING_APPLICATION_JSON='{"spring": {"datasource": { "url":"jdbc:mysql://localhost:3306/myapp", "username":"myappuser", "password":"mypassword" } } }' java -jar build/libs/myapp_springboot.war  

-Dspring.application.json='{"spring": {"datasource": { "url":"jdbc:mysql://localhost:3306/myapp", "username":"myappuser", "password":"mypassword" } } }' java -jar build/libs/myapp_springboot.war  

示例用法

这是试图访问的类:

@Component
public class DbInfo
{
@Value("${spring.datasource.url}")
String fUrl;

请注意,我没有任何“PropertySource 东西”。我最初以为我会免费得到它。

错误

Could not resolve placeholder 'spring.datasource.url' in string value "${spring.datasource.url}"

也试过这个

我试过这个:

@Configuration
@PropertySource({
"classpath:application.properties",
})
public class MyDbInfo
{

@Autowired
Environment fEnvironment;

环境

springBootVersion = '1.4.2.RELEASE'

引用

https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html#boot-features-external-config-vs-value

提前致谢

最佳答案

这对我有用:

@Value("#{environment['spring.datasource.url']}")
private String url;

关于java - spring boot 无法识别 SPRING_APPLICATION_JSON 环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41446778/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com