![](/img/trans.png)
[英]Why is Spring Boot not reading from default application.properties file
[英]Why I fail to use properties from application.properties file in Spring Boot?
為什么我無法在PostDao
類中使用application.properties
中的數據? 未注入的屬性和 DATABASE_URL 和其他變量為null
。
PostDao.java
是我嘗試使用屬性的類 (src.main.java.site.model.PostDao)。
@Component
public class PostDao
{
@Value("${url}") public static String DATABASE_URL;
@Value("${user}") public static String USER;
@Value("${password}") public static String PASSWORD;
}
這是我的application.peoprerties
文件,它位於資源目錄中
url=jdbc:postgresql://localhost:5432/news
user=postgres
password=123
這是我的配置文件(src.main.java.site.NewsSiteApplication)
@SpringBootApplication
public class NewsSiteApplication
{
public static void main(String[] args)
{
SpringApplication.run(NewsSiteApplication.class, args);
}
}
您不能注入靜態變量。 為此,您需要一個 Spring 管理的 Bean。 請嘗試以下操作:
@Component
public class PostDao {
@Value("${url}") public String databaseUrl;
@Value("${user}") public String user;
@Value("${password}") public String password;
}
正如@Turing85 所指出的(感謝提示;)),只應在UPPER_SNAKE_CASE
寫入UPPER_SNAKE_CASE
,因此我更改了變量名稱。
或者,您可以執行以下操作,setter 方法將處理注入:
@Component
public class PostDao
{
public static String DATABASE_URL;
@Value("${url}")
public void setUrlStatic(String name){
PostDao.DATABASE_URL = name;
}
// And others..
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.