SpringBoot入门学习笔记-4-application配置的读取

将一些全局变量在配置文件中定义,供全局使用。

1、application.yml配置变量,@Value读取。

application.yml配置:

# application.yml
spring:
  application:
    name: laoluo-base
server:
  port: 9090

#自定义的一些全局变量
my-path:
  oss: aliyun
  file: aliyuncs
  img: centos

比如上这个myPath变量组下面有三个变量,那么我们就可以通过@Value(${xxx})来获取。

   @Value("${my-path.oss}")
    private String osPath;

    @GetMapping("/demo1")
    public String yamlDemo1 (){
        return osPath;
    };

2、application.yml配置多个变量时,可以用@ConfigurationProperties配置类读取。

@Component
@ConfigurationProperties(prefix="my-path")
public class MyPath {

    private String oss;
    private String file;
    public void setFile(String file) {
        this.file = file;
    }

    public void setOss(String oss) {
        this.oss = oss;
    }

    public String getFile() {
        return file;
    }

    public String getOss() {
        return oss;
    }
}

注意:要加@Componet或@Service使注入容器。同时要用setter(setXXX)。

然后,我们在Controller就可以使用了:

@RestController
@RequestMapping("/yaml")
public class GetYaml {
    @Resource
    private MyPath myPath;

    @GetMapping("/demo2")
    public String yamlDemo2 (){
        // MyPath 是一个配置类
        return myPath.getOss();
    };
}

注意:myPah不可以通过new对象创建,只能@Resource或@Autowired自动装配。

同时,添加依赖支持:

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

当然,我们也可以不使用ConfigurationProperties这个配置,而是使用@Config +@Value在配置类中引用。只是这样效率不高,示例如下:

3、通过Environment读取

所有在配置文件中生效的属性,都可以通过Environment读取。

    @GetMapping("/demo3")
    public String yamlDemo3 (){
        // environment 是系统自带的环境配置类
        return environment.getProperty("my-path.file");
    }

4、springboot共有5种方式读取

另外两种是原生方式读取、@PropertySource读取。但一般不常用,可以参见:(5条消息) SpringBoot 读取配置文件的 5 种方法!_springboot读取外部配置文件_肥肥技术宅的博客-CSDN博客

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值