springboot 读取 yml 配置的几种方式

配置文件

server:
  port: 1017
user:
  alex:
    name: zhangqianzhi
    age: 18
    email: 764468834@qq.com
test:
  msg: 环境读取

color:
  red: 红色
  green: 绿色
  yellow: 黄色

第一种读取方式@value

这种方式适用于读取配置文件中较少的值。

代码实例:

@Value("${server.port}")
public String port;

注:需要在类上标注@Component 、 @Configuration 、@RestController 的 其中的一个,根据使用场景来确定。

第二种读取方式@ConfigurationProperties

如果读取的值较多,需要一个javaBean专门来映射配置的话,一般推荐使用 @ConfigurationProperties
/**
 * @author zqz
 * @version 1.0
 * @date 2021/11/12 15:49
 */
@ConfigurationProperties(prefix = "user.alex")
@RestController
@Configuration
public class HelloController {

    private String name;
    private Integer age;

    @GetMapping("/hello")
    public String getHello(){
        return "姓名:"+name+",年龄:"+age;
    }


    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }
}

这种读取方式需要引入jar

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-configuration-processor</artifactId>
            <optional>true</optional>
        </dependency>

如果需要将去的值用static来修饰需要这样

@RestController
@RequestMapping("/color")
public class ColorController {

    private  static String  READ;
    private  static String  YELLOW;
    private  static String  GREEN;

    @Value("${color.red}")
    public  void setRead(String read) {
        ColorController.READ = read;
    }
    @Value("${color.yellow}")
    public  void setYellow(String yellow) {
        ColorController.YELLOW = yellow;
    }
    @Value("${color.green}")
    public  void setGreen(String green) {
        ColorController.GREEN = green;
    }
    @GetMapping("/getColor")
    public  String  get(){
        return READ+YELLOW+GREEN;
    }

}

第三种读取方式@Environment

@RestController
@RequestMapping("/hello")
public class TestConfigController {
    @Autowired
   private Environment evn;

    @GetMapping("/evn")
    public String evn(){
        return evn.getProperty("test.msg");
    }
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值