SpringBoot学习2之配置文件
2017-05-10 16:26
603 查看
SpringBoot学习2之配置文件
微信公众号" IT程序猿进化史", 共同学习进化~
虽然SpringBoot号称零配置,但是在实际开发过程中,我们常常需要进行一些额外信息的配置,比如数据库连接的一些参数,或者分布式服务的相关配置等等,那么这个时候就有可能用到我们本章的内容。
SpringBoot
添加自定义属性
当我们在创建一个springboot项目时,可以在其src/main/java/resources目录下创建一个名为application.properties的文件或者application.yml文件作为配置文件,springboot会默认对该名称的文件进行读取。在application.yml中添加如下属性
1 2 3 | test: id: 1 name: bob |
如果想要在程序中读取以上属性,可以使用@Value(“${属性名}”)注解
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | @Controller public class App { @Value("${test.id}") private String id; @RequestMapping("/") public String hello(Model model) { model.addAttribute("id", id); return "hello"; } public static void main(String[] args) { SpringApplication.run(App.class, args); } } |
将属性赋值给实体类
当属性非常多的时候,如果每一个都使用@Value注解,则过于麻烦,这个时候,我们可以根据这些属性,给他们创造一个统一的实体类,比如1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | @ConfigurationProperties(prefix = "test") @Component public class ConfigBean { private String name; private int id; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getId() { return id; } public void setId(int id) { this.id = id; } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | @SpringBootApplication @Controller @EnableConfigurationProperties({ConfigBean.class}) public class App { @Autowired ConfigBean configBean; @RequestMapping("/") public String hello(Model model) { model.addAttribute("id", configBean.getId()); return "hello"; } public static void main(String[] args) { SpringApplication.run(App.class, args); } } |
@EnableConfigurationProperties注解中可以存放多个类,用,分割,比如
1 | @EnableConfigurationProperties({ConfigBean1.class,ConfigBean2.class }) |
1 | @PropertySource(value = "classpath: myapplication.yml") |
多环境配置文件
在实际开发过程中,为了保证线上程序的正确性,常常使用多套配置,比如开发一套配置,测试一套配置,实际生产一套配置,而我们需要在这些多个配置之间来回切换。我们可以通过在代码中更改@PropertySource 中的内容来进行切换,但是这样过于麻烦
其实我们可以采用如下手段:
首先,给各个开发环境进行命名
application-test.yml:测试环境
application-dev.yml:开发环境
application-prod.yml:生产环境
然后只需要在application.yml中配置
1 2 3 | spring: profiles: active: dev |
比如我们在test 中
1 2 | server: port: 8081 |
1 2 | server: port: 8082 |
说明:只要格式按照application-{环境标识}.yml或者application-{环境标识}.properties即可,不一定必须是dev/test/prod/,以上命名只是为了方便区分。
详情请访问我的博客:点击打开链接
微信公众号" IT程序猿进化史", 共同学习进化~
相关文章推荐
- springboot学习笔记2(拦截器,redis,授权登录,读取yml配置文件)
- SpringBoot 基础知识学习(二)——配置文件多环境配置
- Spring Boot学习笔记----读取配置文件
- SpringBoot学习<二>——SpringBoot的默认配置文件application和多环境配置
- Spring-Boot学习笔记(二) 配置文件之初步使用
- SpringBoot学习:获取yml和properties配置文件的内容(转)
- SpringBoot学习:获取yml和properties配置文件的内容
- 【spring-boot】spring-boot-config-配置文件学习
- SpringBoot学习:配置文件
- spring boot 学习--07---配置文件处理-02
- spring boot 学习--07---配置文件处理
- Spring Boot学习--logback与properties配置文件
- 【spring-boot】spring-boot-config-配置文件学习-之二
- SpringBoot学习:获取yml和properties配置文件的内容(转)
- 02.Spring Cloud学习笔记之Spring Boot配置文件详解
- Spring Boot学习--从配置文件中获取随机数
- SpringBoot学习:获取yml和properties配置文件的内容
- Spring Boot学习[三] 配置文件
- JavaEE进阶知识学习-----SpringBoot基础知识-2-配置文件知识
- 从0开始学习SpringCould(8)--SpringBoot 分环境读取配置文件