[英]@ConfigurationProperties and unresolvable properties
假設以下配置Bean:
@ConfigurationProperties(prefix="foo")
private class FooProperties {
private String mystring;
private int myint;
}
和以下application.properties
:
foo.mystring = ${bar.mystring}
foo.myint = ${bar.myint}
請注意,這兩個屬性是不可解析的,因為未定義任何以bar
開頭的屬性。 將會發生以下情況:
foo.mystring
設置為字符串"${bar.mystring}"
(無分辨率) foo.myint
將導致轉換錯誤,因為字符串"${bar.myint}"
無法轉換為有效的整數。 相反,我希望在這種情況下拋出一種無法解析的屬性異常。 就像如果我使用@Value("${foo.mystring}")
會發生什么一樣。
這是預期的行為嗎? 在這種情況下,是否有辦法使SpringBoot拋出此類異常?
相反,我希望在這種情況下拋出一種無法解析的屬性異常。
foo.myint
不會拋出Unresolvable Property exception
因為它已通過${bar.myint}
了解析,但是當Spring嘗試將String
轉換為int
類型時,下一步將失敗,因為您存儲在Properties
文件中的所有東西都是String值,除非您明確指定其類型,例如:
foo.myint = (java.lang.Integer)${bar.myint}
這是預期的行為嗎?
大概是。
在這種情況下,是否有辦法使SpringBoot拋出此類異常?
是的,對於Global
級別,您可以使用@ControllerAdvice ;如果要在Controller
級別使用它,則可以使用@ExceptionHandler
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.