美文网首页
spring boot 学习(配置文件)

spring boot 学习(配置文件)

作者: 程序里一块砖 | 来源:发表于2017-11-14 17:09 被阅读0次

    此文做记录交流,如有不当,还望指正。

    application.properties文件

    SpringBoot项目系统的默认配置文件名为application.properties或者application.yml
    配置文件可以放在以下4个位置,并具有优先顺序
    1,在相对于应用程序运行目录的/congfig子目录里。
    2,在应用程序运行的目录里
    3,在config包内
    4,在Classpath根目录

    src/main/resources/config下application.properties覆盖src/main/resources下application.properties中相同的属性,如下图

    image.png

    我们可以在application.properties修改SpringBoot的默认配置

    server.port=8000  #修改启动端口号
    server.name=helloword #项目名称
    

    当然也可以自定义属性

    my.sex=1
    my.name=张三
    my.age=55
    

    具体配置可参考
    SpringBoot application.properties全部配置一
    SpringBoot application.properties全部配置二

    程序中读取配置文件的几种方式

    @Value("${my.sex}") 注解方式读取 代码如下

    package com.demo.springboot_helloword.config;
    import org.springframework.beans.factory.annotation.Value;
    import org.springframework.stereotype.Component;
    @Component
    public class PropertiesUtil {
        @Value("${my.age}")
        private int age;
        @Value("${my.name}")
        private String name;
        @Value("${my.sex}")
        private int sex;
        public int getAge() {
            return age;
        }
        public void setAge(int age) {
            this.age = age;
        }
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public int getSex() {
            return sex;
        }
        public void setSex(int sex) {
            this.sex = sex;
        }
    }
    

    @ConfigurationProperties(prefix = "my")注解方式把配置文件中的属性赋值给实体bean 代码如下

    package com.demo.springboot_helloword.config;
    import org.springframework.boot.context.properties.ConfigurationProperties;
    import org.springframework.stereotype.Component;
    @Component
    @ConfigurationProperties(prefix="my")
    public class PropertiesUtil {
        private int age;
        private String name;
        private int sex;
        public int getAge() {
            return age;
        }
        public void setAge(int age) {
            this.age = age;
        }
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public int getSex() {
            return sex;
        }
        public void setSex(int sex) {
            this.sex = sex;
        }
    }
    

    读取自定义的配置文件。在resource下面创建my.properties

    package com.demo.springboot_helloword.config;
    import org.springframework.boot.context.properties.ConfigurationProperties;
    import org.springframework.context.annotation.PropertySource;
    import org.springframework.stereotype.Component;
    
    @Component
    @PropertySource("classpath:my.properties")
    @ConfigurationProperties(prefix="my")
    public class PropertiesUtil {
        private int age;
        private String name;
        private int sex;
        public int getAge() {
            return age;
        }
        public void setAge(int age) {
            this.age = age;
        }
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public int getSex() {
            return sex;
        }
        public void setSex(int sex) {
            this.sex = sex;
        }
        
    }
    

    application.properties中的参数互相引用及使用随机数

    my.secret=${random.value}
    my.bignumber=${random.long}
    my.number.in.range=${random.int[1024,65536]}
    my.age=${random.int(10)}
    my.name=zhangsan
    my.describe=我的名字叫${my.name},我今年${my.age}岁了
    

    多个环境的配置文件

    在我们开发和测试及线上生产环境中所对应的配置往往是不同的,我们就需要在不同的地方使用不同的文件,假设我们在resources下面创建以下三个文件

    application-test1.properties:测试环境 其中配置 server.port=8000
    application-test2.properties:开发环境 其中配置 server.port=8001
    application-test3.properties:生产环境 其中配置 server.port=8002

    然后在application.properties中添加
    spring.profiles.active=test1
    启动项目测试,我们会发现项目启动后端口为8000
    spring.profiles.active=${activestart:test1}
    上面的写法表示如果我们给传递 activestart 参数值 则spring.profiles.active的值为我们传递的值,否则默认为test1
    项目在启动的时候传递参数
    java -jar xxx.jar --activestart=test2
    项目就以application-test2.properties为配置启动了

    相关文章

      网友评论

          本文标题:spring boot 学习(配置文件)

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