前言:

我们在使用springboot项目开发的时候,可能会遇到这样一种情况,每次切换环境跑项目的时候,都得修改配置文件的数据库地址,这样来回修改感觉很麻烦,所以今天就分享下如何设置多个配置文件,并且用idea启动时指定配置文件。

正文:

有两种配置方式,第一种就是配置多个yml文件,第二种就是在一个yml里配置写多个配置
一、配置多种环境的yml文件
其实各个环境的配置,大部分相同,主要是数据库和一些中间件访问的ip和端口有变化。

开发环境:application-dev.yml

  1. # 配置端口
  2. server:
  3. port: 8989
  4. spring:
  5. # 配置数据源
  6. datasource:
  7. driver-class-name: com.mysql.jdbc.Driver
  8. url: jdbc:mysql://localhost:3306/bendi?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&useSSL=false&zeroDateTimeBehavior=convertToNull
  9. username: root
  10. password: root
  11. type: com.alibaba.druid.pool.DruidDataSource

测试环境:application-test.yml

  1. # 配置端口
  2. server:
  3. port: 8989
  4. spring:
  5. # 配置数据源
  6. datasource:
  7. driver-class-name: com.mysql.jdbc.Driver
  8. url: jdbc:mysql://192.168.124.193:3306/bendi?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&useSSL=false&zeroDateTimeBehavior=convertToNull
  9. username: root
  10. password: root
  11. type: com.alibaba.druid.pool.DruidDataSource

生产环境:application-pro.yml

  1. # 配置端口
  2. server:
  3. port: 8989
  4. spring:
  5. # 配置数据源
  6. datasource:
  7. driver-class-name: com.mysql.jdbc.Driver
  8. url: jdbc:mysql://192.168.124.193:3306/bendi?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&useSSL=false&zeroDateTimeBehavior=convertToNull
  9. username: root
  10. password: root
  11. type: com.alibaba.druid.pool.DruidDataSource

二、一个yml文件写多个环境的配置
在一个yml文件中,可用连续三个连字号(—-)区分多个文件,所以一个application.yml文件也可以完成环境切换了。

  1. spring:
  2. profiles:
  3. active: dev
  4. ---
  5. # 配置端口
  6. server:
  7. port: 8989
  8. spring:
  9. profiles: dev
  10. # 配置数据源
  11. datasource:
  12. driver-class-name: com.mysql.jdbc.Driver
  13. url: jdbc:mysql://localhost:3306/bendi?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&useSSL=false&zeroDateTimeBehavior=convertToNull
  14. username: root
  15. password: root
  16. type: com.alibaba.druid.pool.DruidDataSource
  17. ---
  18. # 配置端口
  19. server:
  20. port: 8989
  21. spring:
  22. profiles: test
  23. # 配置数据源
  24. datasource:
  25. driver-class-name: com.mysql.jdbc.Driver
  26. url: jdbc:mysql://localhost:3306/bendi?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&useSSL=false&zeroDateTimeBehavior=convertToNull
  27. username: root
  28. password: root
  29. type: com.alibaba.druid.pool.DruidDataSource
  30. ---
  31. # 配置端口
  32. server:
  33. port: 8989
  34. spring:
  35. profiles: pro
  36. # 配置数据源
  37. datasource:
  38. driver-class-name: com.mysql.jdbc.Driver
  39. url: jdbc:mysql://localhost:3306/bendi?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&useSSL=false&zeroDateTimeBehavior=convertToNull
  40. username: root
  41. password: root
  42. type: com.alibaba.druid.pool.DruidDataSource

二、idea指定某种环境下的配置文件启动项目
1.多个配置文件,启动项目的时候,需要修改右上角的配置信息,按下图操作
Idea启动springboot项目的时候如指定配置文件 - 图1
Idea启动springboot项目的时候如指定配置文件 - 图2

  1. --spring.profiles.active=test

在启动日志里看到下图所示的日志,便代表指定配置文件启动成功。
Idea启动springboot项目的时候如指定配置文件 - 图3
2.单个配置文件启动项目的时候,只需要在active后面指定 dev或者test即可
Idea启动springboot项目的时候如指定配置文件 - 图4
在启动日志里看到下图所示的日志,便代表指定配置文件启动成功。
Idea启动springboot项目的时候如指定配置文件 - 图5

总结:

天气逐渐变热,大家注意好防晒,要不年龄大了很容易出现老年斑,晒伤是不可逆的。今天的文章风格仍然是简确用(简单确实有用)风格。
我是阿达,一名喜欢分享知识的程序员,时不时的也会荒腔走板的聊一聊电影、电视剧、音乐、漫画,这里已经有7574位小伙伴在等你们啦,感兴趣的就赶紧来点击关注我把,哪里有不明白或有不同观点的地方欢迎留言!

参考文章:
Idea启动springboot项目的时候如何指定配置文件