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"
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章