gpt4 book ai didi

java - 系统属性中的 spring.datasource.password 不起作用

转载 作者:行者123 更新时间:2023-12-01 18:47:52 26 4
gpt4 key购买 nike

我曾经完成过来自 Spring Data 的示例...

效果很好。

我添加了application.properties

#spring.datasource.url=jdbc:h2:mem:testdb
spring.datasource.url=jdbc:h2:file:./h2/demo
spring.datasource.driverClassName=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=wrong
spring.jpa.database-platform=org.hibernate.dialect.H2Dialect

我工作了(显然在第一次运行时它会使用定义的任何密码创建数据库)。

当我将密码更改为 newWrong 时,它开始按预期失败(因此我验证了它正在检查密码)。

现在我更改了属性文件以包含

spring.datasource.password=#{systemProperties['pass']}

我将 AccessingDataJpaApplication 的 main 更改为:

public static void main(String[] args) {
System.setProperty("pass", "wrong" );
SpringApplication.run(AccessingDataJpaApplication.class);
}

它不起作用 - 仍然提示密码。

另一方面,当我添加时

@Value("${bar}")
String foo;

并在应用程序属性中定义(并使用错误密码来防止失败)

bar=#{systemProperties['pass']}

Application 类中的此语句

System.out.println("foo: " + foo);

打印foo:错误

为什么同样的方法不适用于 spring.datasource.password 属性?

最佳答案

这可能不是您问题的确切答案,但我相信这是您想要解决的问题的答案。

当您在命令行上启动应用程序时,只需在命令中附加 -Dspring.datasource.password=wrong 即可将密码传递给应用程序。您可以对任何 spring 属性执行此操作。

如果您从 IDE 运行,则可以编辑运行配置,应该有一个“VM 选项”字段,您可以在其中传递该选项。

这将是 Spring 中处理的规范方式。

关于java - 系统属性中的 spring.datasource.password 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59793788/

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