优惠券配置文件

118 阅读1分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 1 天,点击查看活动详情

配置文件优先级和配置文件变量读取

配置文件优先级

1.resources新增application.yml文件

spring:
  application:
    name: imooc-springboot-study
server:
  port: 8000
  servlet:
    context-path: /imooc

代码说明:

  • application:name:应用名字
  • servlet:context-path: /imooc:项目上下文(原先的控制器为url为/goods,配置之后变成imooc/goods)
  • port: 8000:设置端口号 image.png

2.新增application-dev.xml(开发环境配置文件)

image.png

3.新增application-prod.xml(生产环境配置文件)

image.png

4.application.yml设置引用prod环境的配置文件

profiles:
  active: prod

代码说明:profiles:active: prod表示引用application.prod文件 image.png

5.config配置application.yml

image.png
重新启动发现端口号被覆盖了
image.png 总结:项目根目录的config/下的配置文件优先级高于resources下的配置文件

读取配置文件两种方式

1.配置文件信息

设置了版本号和名字 image.png

2.读取的两种方案

新增控制器包新增两种获取方法

  • 方案1(@Value方式): image.png
@Value("${imooc.springboot.version}")
private String version;
@Value("${imooc.springboot.name}")
private String name;
  • @Value:注入@Value注解
  • ${imooc.springboot.version}:对应配置文件的version字段

控制器方法:

@GetMapping("conf_inject_1")
public void firstConfInject(){
    log.info("version:{},name:{}",version,name);
}

代码说明:

  • log.info:打印日志的方法,{}表示占位符 重启项目: image.png
  • 方案2
    新增config包并且新建SpringBootConfig.java文件 image.png
package com.imooc.springboot.study.config;

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

@Data
@Component
@ConfigurationProperties(prefix = "imooc.springboot")
public class SpringBootConfig {
    private String name;
    private String version;
}

代码说明:

  • @Data:lombok的setter和getter方法
  • @Component:定义为组件
  • @ConfigurationProperties:配置文件名字 image.png
@GetMapping("conf_inject_2")
public void secondConfInject(){
    log.info("version:{},name:{}",springBootConfig.getVersion(),springBootConfig.getName());
}

重启项目: image.png