前言
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對象獲取到屬性值。