Spring @Value returns <empty>
Spring @Value returns <empty>
我查过类似的问题:
但是,我找不到我的注释有什么问题
这是代码在 IntelliJ 中的样子
screenshot from IntelliJ
这是下面的内容
@Component
public class VisitMapper {
@Value("${spring.datasource.url}")
private String url;
@Value("${spring.datasource.username}")
private String username;
@Value("${spring.datasource.password}")
private String password;
//more code below
我有两个.properties 文件:application-dev.properties 和application.properties。
活动配置文件设置为开发。
在 application-dev.properties 我有:
spring.datasource.url=jdbc:postgresql://localhost:5432/postgres
spring.datasource.username=postgres
spring.datasource.password=postgres
不确定它是否重要,因为活动配置文件设置为开发,但在 application.properties 我有:
spring.datasource.url=
spring.datasource.username=
spring.datasource.password=
总结 - 为什么密码值显示为空?
我怀疑 Intellij 隐藏了其中带有 password
的字段(尽管 <empty>
有点糟糕)或者 Intellij 很难解析正确的 属性该字段的值(无论出于何种原因)。
然而,您的应用程序启动的事实表明,至少,Spring Boot 确实正确地解析了属性,否则它不会启动并崩溃。由于无法解析 属性 或由于无法连接到数据库,它无法启动。
我查过类似的问题:
但是,我找不到我的注释有什么问题
这是代码在 IntelliJ 中的样子 screenshot from IntelliJ
这是下面的内容
@Component
public class VisitMapper {
@Value("${spring.datasource.url}")
private String url;
@Value("${spring.datasource.username}")
private String username;
@Value("${spring.datasource.password}")
private String password;
//more code below
我有两个.properties 文件:application-dev.properties 和application.properties。 活动配置文件设置为开发。 在 application-dev.properties 我有:
spring.datasource.url=jdbc:postgresql://localhost:5432/postgres
spring.datasource.username=postgres
spring.datasource.password=postgres
不确定它是否重要,因为活动配置文件设置为开发,但在 application.properties 我有:
spring.datasource.url=
spring.datasource.username=
spring.datasource.password=
总结 - 为什么密码值显示为空?
我怀疑 Intellij 隐藏了其中带有 password
的字段(尽管 <empty>
有点糟糕)或者 Intellij 很难解析正确的 属性该字段的值(无论出于何种原因)。
然而,您的应用程序启动的事实表明,至少,Spring Boot 确实正确地解析了属性,否则它不会启动并崩溃。由于无法解析 属性 或由于无法连接到数据库,它无法启动。