SpringBoot自定义配置文件有两种读取方式
如在配置文件中自定义如下配置
- @Value注解读取自定义配置文件——用于逐个读取自定义的配置
新建一个controller类如下:
@Controller
public class ConfigInfoController {
@Value("${boot.name}")
private String name;
@Value("${boot.location}")
private String location;
@RequestMapping("/boot/config")
public @ResponseBody String config(){
return name + "---" + location;
}
}
启动该项目,访问结果如下:
2. @ConfigurationProperties读取方式
创建一个类,用于将文件映射成一个对象,配置文件中的配置分别对应类中 的属性,做一对一的映射。如下,创建一个类ConfigInfo(类名可以自己起)
@Component
@ConfigurationProperties(prefix = "boot")
public class ConfigInfo {
private String name;
private String location;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getLocation() {
return location;
}
public void setLocation(String location) {
this.location = location;
}
}
在controller类中注入该对象,然后通过get方法得到配置文件中的自定义配置,此时的controller类为:
@Controller
public class ConfigInfoController {
@Value("${boot.name}")
private String name;
@Value("${boot.location}")
private String location;
@Autowired
private ConfigInfo configInfo;
@RequestMapping("/boot/config")
public @ResponseBody String config(){
return name + "---" + location + "==" + configInfo.getName() +"---"+configInfo.getLocation();
}
}
运行结果如下: