Spring Cloud Spring Boot mybatis分佈式微服務雲架構(三)屬性配置文件詳解(1)

相信不少人選擇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參數引用了上文中定義的nametitle屬性,最後該屬性的值就是程序猿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

相關文章
相關標籤/搜索