美文网首页
Spring Boot 加载配置文件

Spring Boot 加载配置文件

作者: dayue_ | 来源:发表于2020-12-03 23:51 被阅读0次

    以下例子代码在github中,代码链接

    一、加载配置文件值

    在springboot项目中,配置值可以通过两种方式来设置,一种是配置值写在properties文件中,另一种是写在yaml中。
    (1)配置值写在properties文件中,读取properties配置值有两种方式,一种是写一个配置类,另一种是注入Environment类来获取。
    default.properties配置值如下:


    image.png
    • 写一个配置类读取
    @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注解来直接读取字段


    image.png
    # 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"
    

    相关文章

      网友评论

          本文标题:Spring Boot 加载配置文件

          本文链接:https://www.haomeiwen.com/subject/fzbfbktx.html