1. 程式人生 > >Spring Boot中配置檔案application.properties使用

Spring Boot中配置檔案application.properties使用

一、配置文件配置項的呼叫

啟動後在瀏覽器直接輸入http://localhost:18080/user/test,就直接打印出配置檔案中的配置內容。

二、繫結物件bean呼叫

有時候屬性太多了,一個個繫結到屬性欄位上太累,官方提倡繫結一個物件的bean,這裡我們建一個ConfigBean.java類,頂部需要使用註解@ConfigurationProperties(prefix = “com”)來指明使用哪個

1
2
3
4
5
6
7
@ConfigurationProperties(prefix = "com")
public class ConfigBean {
    private String name;
    private String id;

    // 省略getter和setter
}

這裡配置完還需要在spring Boot入口類加上@EnableConfigurationProperties並指明要載入哪個bean,如果不寫ConfigBean.class,在bean類那邊新增

1
2
3
4
5
6
7
8
@SpringBootApplication
@EnableConfigurationProperties({ConfigBean.class})
public class Chapter2Application {

    public static void main(String[] args) {
        SpringApplication.run(Chapter2Application.class, args);
    }
}

最後在Controller中引入ConfigBean使用即可,如下:

1
2
3
4
5
6
7
8
9
10
@RestController
public class UserController {
    @Autowired
    ConfigBean configBean;

    @RequestMapping("/")
    public String hexo(){
        return configBean.getName()+configBean.getId();
    }
}

三、引數間引用

在application.properties中的各個引數之間也可以直接引用來使用,就像下面的設定:

1
2
3
com.name="張三"
com.id="8"
com.psrInfo=${com.name}編號為${com.id}

這樣我們就可以只是用psrInfo這個屬性就好

 四、使用自定義新建的配置檔案

  我們新建一個bean類,如下:

1
2
3
4
5
6
7
8
@Configuration
@ConfigurationProperties(prefix = "com.md") 
@PropertySource("classpath:test.properties")
public class ConfigTestBean {
    private String name;
    private String want;
    // 省略getter和setter
}

主要就是加了一個註解:@PropertySource("classpath:test.properties")

五、配置檔案優先順序

application.properties和application.yml檔案可以放在一下四個位置:

  • 外接,在相對於應用程式執行目錄的/congfig子目錄裡。
  • 外接,在應用程式執行的目錄裡
  • 內建,在config包內
  • 內建,在Classpath根目錄

同樣,這個列表按照優先順序排序,也就是說,src/main/resources/config下application.properties覆蓋src/main/resources下application.properties中相同的屬性,如圖:

此外,如果你在相同優先順序位置同時有application.properties和application.yml,那麼application.yml裡面的屬性就會覆蓋application.properties裡的屬性。