我們springboot項目有自己默認的配置文件晰筛,一般地由application.yml和bootstrap.yml組成嫡丙,前者是模塊的配置,后者是微服務的配置读第,后臺比前者先被框架加載曙博。
我們有時需要自己定義配置,可能不是簡單的字符串怜瞒,它可能是一個對象父泳,對象里有具體的配置段,它也是application.yml的一部分吴汪,你可以把自己的代碼添加上惠窄,當然你也可以新建全新的文件。
例如漾橙,有一個配置由name和version組成杆融,我們在application.yml里可以把它定義成project元素下面的,這里的project叫前綴霜运,我們在定義配置實體時用來修飾它脾歇。
package test.lind.javaLindDay.utilDemo;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.PropertySource;
import org.springframework.stereotype.Component;
@Component
@ConfigurationProperties(prefix = "project")
@PropertySource(value = "classpath:config.yml")
public class MyConfig {
private String version;
private String name;
public String getVersion() {
return version;
}
public void setVersion(String version) {
this.version = version;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
而其中的注解@component表示可以使用@Autowired注入!如果配置里只是一個字符串的項淘捡,我們也可以使用@Value來進行注入藕各,如下代碼展現了兩種
注入的方式。
@RestController
public class HomeController {
@Autowired
MyConfig config;
@Value("${lind.name}")
String app;
@RequestMapping("/")
public String Index() {
return "HOME=" + config.getName() + "app=" + app;
}
}