Springboot多环境配置文件

目录

一步到位springboot目录
gitee:https://gitee.com/chaitou/leilema.git

前言

谈到springboot,我们反复提到了"约定大于配置"。简单的说,当你引入stater-web,也就是说当你需要使用web模块的时候,springboot就默认觉得你要用到tomcatspring mvc等,同时他也默认觉得你要用的端口就是8080,因此帮你在配置文件上默认写了8080

在SpringBoot中,约定大于配置可以从以下两个方面来理解:
① 开发人员仅需规定应用中不符合约定的部分
② 在没有规定配置的地方,采用默认配置,以力求最简配置为核心思想

程序员:“我不要你觉得,我要我觉得”
springboot:“你要你觉得,就得去/src/main/java/resources/application.properties中配。比如要指定端口为8081,你不配我怎么知道?🔑一把3块你配吗?”
我不要你觉得

配置文件

文件类型

项目src/main/java/resources下存放着application.properties文件,这就是配置文件。springboot支持2中配置文件。一种是.properties、另一种则是.yml,两者有什么区别呢?

  1. .properties文件需要写全称,也就是
server.port=8081
server.servlet.context-path=/leilema
  1. .yml文件则通过缩进的方式省略了全称。(特别注意,:后面有一个空格,千万千万不能省略)
server:
  port: 8081
  servlet:
    context-path: /leilema

这2种格式笔者更喜欢第二种,看起来不回眼花缭乱的。怎么使用yml文件呢?直接把目录下application.properties重命名成application.yml就可以了

一、自定义属性

在配置文件src/main/java/resources/application.yml上配置自定义属性

hello:
  name: bugpool
  project: leilema

重写一下HelloWorldController

@RestController
public class HelloWorldController {

    @Value("${hello.name}")
    private String name;
    @Value("${hello.project}")
    private String project;

    @GetMapping("/hello")
    public String helloWorld() {
        return "hello " + project + " ceo " + name;
    }
}

运行一哈
自定义属性

二、实战多环境配置文件

跟学生项目不同,实际生产中,一个项目往往会有3套配置,分别是:

  1. application-pro.yml:生产环境,会切换到生产数据库、同时关闭sql打印swagger文档等开发时用到的配置、同时提高日志等级,只输出重要日志
  2. application-test.yml:测试环境,切换到测试数据库。一般测试数据库数据是从真实生产数据库某个时间点的同步数据(经过脱敏处理),最大限度的模拟真实环境,提供给测试人员使用真实数据进行测试代码
  3. application-dev.yml:开发环境,这个才是程序员开发时使用的配置。会打开sql语句打印等配置方便调试开发、同时开发环境不会有生产环境的数据防止程序员删库跑路,也防止程序员看到一些不该看的东西(比如老板的工资…)。开发人员的application-pro.yml一般是空的,代码提交后,经过测试人员测试后由运维人员通过阿波罗或者其他持续集成工具进行替换配置文件

说了这么多,如果在真实项目中,你不用多套配置文件,而是通通只有application.yml,每次切换环境都手动去改配置文件。且不说有多麻烦,代码版本管理你也做不了啊,开发人员权限控制也做不了 ,而且最蛋疼的是难免会改错!一旦改错上生产那事情有多大条你就自己想把…

三、多环境配置文件的使用

springboot配置环境读取原理

Springboot启动前自动会读取src/main/resources/application.yml配置文件,再通过application.yml配置文件中配置的’spring.profiles.active’寻找启用的配置文件。

1. 创建配文件

新建2个配置文件分别为

  1. application-dev.yml用于开发,端口为8081
  2. application-pro.yml用于生产,端口为8080

配置文件

2. 编写配置文件

编写application-dev.yml配置文件,端口为8081。同理编写application-pro.yml为8080

server:
  port: 8081

3. 激活配置文件

前面说了,springboot默认读取的是application.yml,我们需要在application.yml中指定当前生效的配置文件

spring:
  profiles:
    active: dev

虽然我们只配置了dev,springboot会按照约定寻找application-*.yml文件

4. 启动验证

当我们开启dev环境时,可以看到8080端口是访问不到的,8081端口可以正常访问

8081
8080

4. 配置文件目录

如果要深挖,springboot的配置文件是可以反正5个目录的,按照优先级可分为(./表示当前项目根目录):

  1. 启动命令时指定目录,也就是java -jar xxx强制指定的,用户指定的,最大嘛
  2. 当前项目同级目录下/config中,也就是../config/application.yml
  3. 当前项目同级目录,也就是../application.yml
  4. 项目内config包中,也就是src/main/resources/config/application.yml
  5. 项目内,也就是src/main/resources/application.yml

也就是说1 覆盖 2,以此类推…
这里只是为了跟大家说清楚,不需要深究,百分之99的同学用不着。但是知道一下这个东西,等需要用时再查即可

总结

本篇主要介绍了springboot默认配置,之后介绍实战中的多环境配置文件,由于我们项目较小,因此我们只使用devpro,最后我们学习了如何创建多环境配置文件,并且启用指定环境。最最最最后延伸了配置文件的目录,这点了解即可,一般都用不着。下一篇我们将开始讲解orm层框架,也就是操作数据库,程序员4大搬砖技能CRUD!

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值