SpringBoot2第一讲:启用配置文件

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配置文件。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值