SpringBoot屬性注入

這裏寫出兩種從properties文件中獲得屬性值得兩種方式

你可以自己創建一個properties,當然也可以使用默認的application.properties。

在這裏插入圖片描述

book.properties內容如下

book.name=ll
book.price=30

1.使用@Value

@Component
//如果是使用自己定義的properties需要下面的註解註明位置,如果寫在application.properties中則不需要
@PropertySource("classpath:book.properties")
public class Book {
    @Value("${book.name}")
    private String name;

    @Value("${book.price}")
    private int price;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getPrice() {
        return price;
    }

    public void setPrice(int price) {
        this.price = price;
    }
}

2.使用@ConfigurationProperties(prefix = “book”)

@Component
//如果是使用自己定義的properties需要下面的註解註明位置
@PropertySource("classpath:book.properties")
@ConfigurationProperties(prefix = "book")
public class Book {
    
    private String name;

    private int price;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getPrice() {
        return price;
    }

    public void setPrice(int price) {
        this.price = price;
    }
}

測試類如下

@SpringBootTest
class BootestApplicationTests {

    @Autowired
    private Book book;

    @Test
    void contextLoads() {
        System.out.println(book.getName()+" "+book.getPrice());
    }

}

結果如下
在這裏插入圖片描述

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