SpringBoot註解配置檔案自動對映到屬性和實體類實戰
講解使用@value註解配置檔案自動對映到屬性和實體類
1、配置檔案載入
方式一
1、Controller上面配置
@PropertySource({"classpath:resource.properties"})
2、增加屬性
@Value("${test.name}")
private String name;
方式二:實體類配置檔案
步驟:
1、新增 @Component 註解;
2、使用 @PropertySource 註解指定配置檔案位置;
3、使用 @ConfigurationProperties 註解,設定相關屬性;
4、必須 通過注入IOC物件Resource 進來 , 才能在類中使用獲取的配置檔案值。
@Autowired
private ServerSettings serverSettings;
例子:
@Configuration
@ConfigurationProperties(prefix="test")
@PropertySource(value="classpath:resource.properties")
public class ServerConstant {
常見問題:
1、配置檔案注入失敗,Could not resolve placeholder
解決:根據springboot啟動流程,會有自動掃描包沒有掃描到相關注解,
預設Spring框架實現會從宣告@ComponentScan所在的類的package進行掃描,來自動注入,
因此啟動類最好放在根路徑下面,或者指定掃描包範圍
spring-boot掃描啟動類對應的目錄和子目錄
2、注入bean的方式,屬性名稱和配置檔案裡面的key一一對應,就不用加@Value 這個註解
如果不一樣,就要加@value("${XXX}")