SpringBoot入門——屬性文件讀取

一 自定義屬性


  在application.properties文件中添加屬性配置項


 myapp.name=helloworld 


  可以使用@Value 註解來讀取,在之前的helloworld工程的控制器中添加屬性並讀取,如下


@RestController

public class HelloController {


    @Value("${myapp.name}")

    private String name;


    @RequestMapping("/hello")

    public String hello(){

        System.out.println("myapp name :" + name);

        return "helloworld";

    }


}

@Value 註解會去application.properties文件中配置屬性爲myapp.name的屬性,並將值賦值給name屬性。訪問hello方法,可以看到控制檯上打印出來的信息




  自定義的屬性比較少時使用@Value讀取還是比較方便的,如果我們的屬性比較多的時候,比如我們要讀取數據庫連接池配置的很多的屬性值,再這樣讀取的話,就顯得不是很美觀了。這種情況我們一般定義一個對象,把屬性字段作爲對象的屬性來接收,在屬性文件中在增加一個屬性


 myapp.age=2


  我們定義一個對象MyAppProperties來接收屬性值


@Component

@ConfigurationProperties(prefix = "myapp")

public class MyAppProperties {


    private String name;

    private int age;


    @Override

    public String toString() {

        return "MyAppProperties{" +

                "name='" + name + '\'' +

                ", age=" + age +

                '}';

    }


    //省略getter和setter方法

}

@Component 表示指定當前類爲實例,以便可以在spring中使用

@ConfigurationProperties(prefix = "myapp") 表示把application中的myapp開頭的屬性自動賦值給當前對象的屬性,比如把myapp.name的值賦值給name屬性

訪問hello方法可以看到

二 自定義屬性配置文件  

  有的時候,我們需要把自己的屬性配置信息寫在自己的配置文件中,以便和系統的application.properties分開,我們可以在resources目錄下新建自己的屬性文件my.properties,並添加屬性

my.name=helloworld2 my.age=22            

    定義讀取屬性的對象類,使用 @PropertySource("classpath:my.properties") 來指定我們當前類要讀取的屬性文件


@Component

@PropertySource("classpath:my.properties")

@ConfigurationProperties(prefix = "my")

public class MyAppProperties2 {


    private String name;

    private int age;


    @Override

    public String toString() {

        return "MyAppProperties2{" +

                "name='" + name + '\'' +

                ", age=" + age +

                '}';

    }


    // 省略getter和setter方法

}

  修改控制器hello方法測試


@RestController

public class HelloController {


    @Resource

    private MyAppProperties myAppProperties;

    @Resource

    private MyAppProperties2 myAppProperties2;


    @RequestMapping("/hello")

    public String hello(){

        System.out.println(myAppProperties.toString());

        System.out.println(myAppProperties2.toString());

        return "helloworld";

    }


}

  訪問hello方法,可以看到控制檯輸出的打印信息



--------------------- 

作者:Java架構閒談 

來源:CSDN 

原文:https://blog.csdn.net/qiyue683209/article/details/86618673 

版權聲明:本文爲博主原創文章,轉載請附上博文鏈接!


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章