相信不少人選擇Spring Boot主要是考慮到它既能兼顧Spring的強大功能,還能實現快速開發的便捷。咱們在Spring Boot使用過程當中,最直觀的感覺就是沒有了原來本身整合Spring應用時繁多的XML配置內容,替代它的是在pom.xml
中引入模塊化的Starter POMs
,其中各個模塊都有本身的默認配置,因此若是不是特殊應用場景,就只須要在application.properties
中完成一些屬性配置就能開啓各模塊的應用。html
在以前的各篇文章中都有說起關於application.properties
的使用,主要用來配置數據庫鏈接、日誌相關配置等。除了這些配置內容以外,本文將具體介紹一些在application.properties
配置中的其餘特性和使用方法。數據庫
自定義屬性與加載
咱們在使用Spring Boot的時候,一般也須要定義一些本身使用的屬性,咱們能夠以下方式直接定義:app
com.didispace.blog.name=程序猿DD com.didispace.blog.title=Spring Boot教程
而後經過@Value("${屬性名}")
註解來加載對應的配置屬性,具體以下:dom
@Component public class BlogProperties { @Value("${com.didispace.blog.name}") private String name; @Value("${com.didispace.blog.title}") private String title; // 省略getter和setter }
按照慣例,經過單元測試來驗證BlogProperties中的屬性是否已經根據配置文件加載了。模塊化
@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
中的各個參數之間也能夠直接引用來使用,就像下面的設置:單元測試
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字符串,來支持屬性的隨機值。url
# 隨機字符串 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]}
源碼來源spa