springboot2.0系列(二):配置屬性 原

前言

Spring Boot中核心思想:約定優於配置。那到底什麼是約定優於配置?

約定優於配置(convention over configuration),也稱作按約定編程,是一種軟件設計範式,旨在減少軟件開發人員需做決定的數量,獲得簡單的好處,而又不失靈活性。

比如,我們想改tomcat的默認8080端口,我們可以在application.properties配置文件中添加 server.port=8081,即我們只需要修改沒有按照約定的配置即可。

正文

Spring Boot中幾乎所有的配置都在 application.properties 中修改,如果你想看全部的配置,可以查看下面官網鏈接:屬性配置 只需要選擇需要修改的屬性配置。

自定義屬性

在application.properties 添加自定義屬性

com.chenglt.name:城裏頭
com.chenglt.sex:男

然後在使用的地方通過@Value(value=”${config.name}”)即可獲取配置屬性


    @Value("${com.chenglt.name}")
    private  String name;
    @Value("${com.chenglt.sex}")
    private  String sex;
    @Test
    public void getName() {
        System.out.println(name+sex);
    }

如果字段太多,可以自定義類來保存,比如,我們新建ChengConfig類,頂部需要使用註解@ConfigurationProperties(prefix = “com.chenglt”)來指明使用前綴。

@ConfigurationProperties(prefix = "com.chenglt")
public class ChengConfig {

    private String name;
    private String sex;

 <!--這裏省略了get和set方法-->
}

然後我們在入口類前加上@EnableConfigurationProperties({ChengConfig.class}) 指明加載那個類。


@SpringBootApplication
@EnableConfigurationProperties({ChengConfig.class})
public class DemoApplication {
	public static void main(String[] args) {
		SpringApplication.run(DemoApplication.class, args);
	}
}

最後再使用的地方注入該對象即可。

    @Autowired
    ChengConfig configBean;
    @Test
    public void getName() {
        System.out.println(configBean.getName());
    }

自定義配置文件

有時我們我們希望把自定義的屬性單獨建個文件,比如現在新建myconfig.properties,放在src/main/resource下並添加上文中的兩個屬性:

然後新建類MyConfig,@PropertySource註解指定配置文件。

@Configuration
@ConfigurationProperties(prefix = "com.chenglt")
@PropertySource("classpath:myconfig.properties")
public class MyConfig {
    private String name;
    private String sex;
 <!--這裏省略了get和set方法-->
}

最後再通過該bean對象獲取到屬性值。


參考鏈接

純潔的微笑

嘟嘟獨立博客

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