概述
1. 新建SpringBoot2工程。
2. 把application.properties改名为application.yaml, 并输入intVal和stringVal等配置
注意:配置冒号有要有空格。
2. 添加配置文件对应类
package cn.gongler.learn.springboot2.learn1;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
@Data
@ConfigurationProperties(prefix="gongler.learn1")
public class MyProperties {
int intVal = 123;
String stringVal = "defaultStr";
}
解释:
@ConfigurationProperties(prefix="gongler.learn1")指定了哪个类是配置文件对应类,以及配置文件中的统一前缀。
注意这个类不是Bean不是组件,只是表示映射关系。
3. 指定哪个配置文件映射类
@EnableConfigurationProperties(MyProperties.class)
@Configuration
public class MyConfiguration {
}
注意:必须同时与组件注解搭配,才能生效。推测是,枚举beans组件库。
4. 添加Controller类
@Component
@RestController
@RequestMapping("gongler")
public class Controller {
@Autowired MyProperties properties;
@GetMapping("learn1")
public MyProperties hello(){
return properties;//http://127.0.0.1:8080/gongler/learn1 返回:{"intVal":123,"stringVal":"defaultStr"}
}
}
利用@Autowired把组件注入properties
@RestController使得返回properties对象自动转换成json。
5. 测试
可以看到配置参数被成功载入。
未配置项会保留类的初始值。
多于的配置项不会报错。实际上一个配置文件可以对应多个映射类。不同模块各取所需。
@EnableConfigurationProperties(class)可以有条件产生Bean;@Component是无条件产生bean,所以不可以同时作用。这就是通常为什么SpringBoot中@ConfigurationProperties不与@Component一起约束同一个类的原因。
其他:
使用org.yaml.snakeyaml.scanner解析yaml配置文件。
最后
以上就是阔达丝袜为你收集整理的SpringBoot2第一讲:启用配置文件的全部内容,希望文章能够帮你解决SpringBoot2第一讲:启用配置文件所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复