1. 程式人生 > >屬性配置檔案詳解(1)(十六)

屬性配置檔案詳解(1)(十六)

相信很多人選擇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引數引用了上文中定義的nametitle屬性,最後該屬性的值就是程式猿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 ]}