spring boot 加載配置文件

以下例子代碼在github中,代碼鏈接

一、加載配置文件值

在springboot項目中,配置值可以通過兩種方式來設置,一種是配置值寫在properties文件中,另一種是寫在yaml中。
(1)配置值寫在properties文件中,讀取properties配置值有兩種方式,一種是寫一個配置類,另一種是注入Environment類來獲取。
default.properties配置值如下:


  • 寫一個配置類讀取
@Configuration
@PropertySource(value = {"default.properties"})
@Data
public class DefaultPropertiesConfig {

    @Value("${name}")
    private String name;

    @Value("${age}")
    private Integer age;

}
  • 注入Environment類讀取
    @Autowired
    private Environment environment;

    environment.getProperty("name")+":"+environment.getProperty("age")

(2)配置值寫在yaml文件中,可以通過寫配置類來讀取配置值,也可以通過@Value註解來直接讀取字段


# yaml配置文件
default:
  student:
    name: lisi
    age: 19
  • 寫一個配置類讀取
@Configuration
@ConfigurationProperties(prefix = "default.student")
@Data
public class DefaultYamlConfig {

    private String name;

    private Integer age;

}
  • 通過@Value註解
    @Value("${default.student.name}")
    private String name;

    @Value("${default.student.age}")
    private int age;

以上三種方式讀取配置文件配置值,實現類讀取的代碼如下

@Service
public class DemoServiceImpl implements DemoService {

    @Autowired
    private DefaultPropertiesConfig defaultConfig;

    @Autowired
    private Environment environment;

    @Autowired
    private DefaultYamlConfig defaultYamlConfig;

    @Value("${default.student.name}")
    private String name;

    @Value("${default.student.age}")
    private int age;


    @Override
    public String properties1() {
        return defaultConfig.getName() + ":" + defaultConfig.getAge();
    }

    @Override
    public String properties2() {
        return environment.getProperty("name")+":"+environment.getProperty("age");
    }

    @Override
    public String properties3() {
        return defaultYamlConfig.getName() + ":" + defaultYamlConfig.getAge();
    }

    @Override
    public String properties4() {
        return name + ":" + age;
    }
}
二、環境化配置profile

通常默認配置文件是application.yaml,可以通過application-dev.yaml、application-prod.yaml文件來指定不同環境不同配置文件。

  • 方式一,在application.yaml裏面指定不同環境不同配置文件
spring.profiles.active:dev
spring.profiles.active:prod
  • 方式二,啓動項目時通過命令行傳參
java -jar xxx.jar --spring.config.name=appilcation-dev
java -jar xxx.jar --spring.profile.active="dev"
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章