SpringBoot配置之application.properties

简述

Spring Boot使用了一个全局的配置文件application.properties,放在src/main/resources目录下或者src/main/resources/config下。在 src/main/resources/config 下的优先级高 。Sping Boot的全局配置文件的作用是对一些默认配置的配置值进行修改。

自定义属性

在application.properties

com.example.name="MJ"
@RestController
public class HelloController {
   @Value("${com.example.name}")
    private String name;

    @GetMapping("/user")
    public String info(){
        return  name;
    }
}

属性映射到类中

@Configuration
@ConfigurationProperties(prefix = "com.example")
public class ConfigBean {
    private String name;
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
}
@RestController
@EnableConfigurationProperties({ConfigBean.class})
public class HelloController {

    @Autowired
    ConfigBean configBean;

    @GetMapping("/user2")
    public String info2(){
        String name = configBean.getName();
        return name;
    }   
}

使用自定义配置文件

新建 test.properties

my.name="who"
@Configuration
@ConfigurationProperties(prefix = "my")
@PropertySource("classpath:test.properties")
public class ConfigTestBean {
    private String name;
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
}
@RestController
@EnableConfigurationProperties({ConfigBean.class,ConfigTestBean.class})
public class HelloController {

    @Autowired
    ConfigBean configBean;

    @Autowired
    ConfigTestBean configTestBean;

    @GetMapping("/user2")
    public String info2(){
        String name = configBean.getName();
        return name;
    }

    @GetMapping("/user3")
    public String info3(){
        String name = configTestBean.getName();
        return  name;
    }
}

@Component 或 @Configuration 都可以当 ,会被 当成 bean 来管理

随机值分配

my.secret=${random.value}
my.number=${random.int}
my.bignumber=${random.long}
my.uuid=${random.uuid}
my.number.less.than.ten=${random.int(10)}
my.number.in.range=${random.int[1024,222222]}

参数间引用

com.example.name="MJ"
com.example.say="hello"
com.example.example=${com.example.name} say : ${com.example.say}

Profile-多环境配置

在Spring Boot中多环境配置文件名需要满足application-{profile}.properties的格式,其中{profile}对应你的环境标识,比如:

  • application-dev.properties:开发环境
  • application-prod.properties:生产环境

想要使用对应的环境,只需要在application.properties中使用spring.profiles.active属性来设置,值对应上面提到的{profile},这里就是指dev、prod这2个。

启动项目动时候带上

java -jar xxx.jar --spring.profiles.active=dev

参考:
Spring Boot干货系列:配置文件解析
江南一点雨
江南一点雨

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一直有自知之明,自己声音太小了,身边的人也反映过这问题,还有说话不自信,说话含糊。。。想改变下,挑战自己。性格比较...
    PeeWee阅读 140评论 0 0
  • 2017年11月25日 星期六 晴 今天周六,我和孩子也可以晚点起床,可是,习惯了平时的作息时间,...
    宋雯楠妈妈阅读 189评论 0 0
  • 楼主是一名iOS 最近刚入坑Flutter 用到了FlutterWebviewPlugin 但是有些原因 想修改一...
    鹿GANG阅读 1,049评论 0 2
  • 今天刚走进教室,小蓝同学就拿着一本书跑到我的面前。告诉我:“老师,这是我写的书,送您一本。”然后打开扉页,我看到上...
    航子妈咪阅读 250评论 0 1