屬性配置檔案詳解(1)(十六)
阿新 • • 發佈:2019-01-07
相信很多人選擇Spring Boot主要是考慮到它既能兼顧Spring的強大功能,還能實現快速開發的便捷。我們在Spring Boot使用過程中,最直觀的感受就是沒有了原來自己整合Spring應用時繁多的XML配置內容,替代它的是在pom.xml
中引入模組化的Starter POMs
,其中各個模組都有自己的預設配置,所以如果不是特殊應用場景,就只需要在application.properties
中完成一些屬性配置就能開啟各模組的應用。
在之前的各篇文章中都有提及關於application.properties
的使用,主要用來配置資料庫連線、日誌相關配置等。除了這些配置內容之外,本文將具體介紹一些在application.properties
自定義屬性與載入
我們在使用Spring Boot的時候,通常也需要定義一些自己使用的屬性,我們可以如下方式直接定義:
1 2 |
com.didispace.blog.name=程式猿DD
com.didispace.blog.title=Spring Boot教程
|
然後通過@Value("${屬性名}")
註解來載入對應的配置屬性,具體如下:
1 2 3 4 5 6 7 8 9 10 11 |
@Component
public
class
BlogProperties {
@Value
(
"${com.didispace.blog.name}"
)
private
String name;
@Value
(
"${com.didispace.blog.title}"
)
private
String title;
// 省略getter和setter
}
|
按照慣例,通過單元測試來驗證BlogProperties中的屬性是否已經根據配置檔案載入了。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
@RunWith
(SpringJUnit4ClassRunner.
class
)
@SpringApplicationConfiguration
(Application.
class
)
public
class
ApplicationTests {
@Autowired
private
BlogProperties blogProperties;
@Test
public
void
getHello()
throws
Exception {
Assert.assertEquals(blogProperties.getName(),
"程式猿DD"
);
Assert.assertEquals(blogProperties.getTitle(),
"Spring Boot教程"
);
}
}
|
引數間的引用
在application.properties
中的各個引數之間也可以直接引用來使用,就像下面的設定:
1 2 3 |
com.didispace.blog.name=程式猿DD
com.didispace.blog.title=Spring Boot教程
com.didispace.blog.desc=${com.didispace.blog.name}正在努力寫《${com.didispace.blog.title}》
|
com.didispace.blog.desc
引數引用了上文中定義的name
和title
屬性,最後該屬性的值就是程式猿DD正在努力寫《Spring Boot教程》
。
使用隨機數
在一些情況下,有些引數我們需要希望它不是一個固定的值,比如金鑰、服務埠等。Spring Boot的屬性配置檔案中可以通過${random}
來產生int值、long值或者string字串,來支援屬性的隨機值。
1 2 3 4 5 6 7 8 9 10 |
# 隨機字串
com.didispace.blog.value=${random.value}
# 隨機
int
com.didispace.blog.number=${random.
int
}
# 隨機
long
com.didispace.blog.bignumber=${random.
long
}
#
10
以內的隨機數
com.didispace.blog.test1=${random.
int
(
10
)}
#
10
-
20
的隨機數
com.didispace.blog.test2=${random.
int
[
10
,
20
]}
|