![名师讲坛:Java微服务架构实战(SpringBoot+SpringCloud+Docker+RabbitMQ)](https://wfqqreader-1252317822.image.myqcloud.com/cover/154/29977154/b_29977154.jpg)
2.12 profile配置
在项目开发过程中需要考虑不同的运行环境:开发环境(dev)、测试环境(beta)和生产环境(product)。在以往的开发过程中通常使用Maven构建工具进行控制,但却需要进行大量的配置。SpringBoot考虑到此类问题,专门设计了profile支持。
1.【mldnboot-base项目】修改application.yml配置文件,让其支持多profile配置。
![](https://epubservercos.yuewen.com/688FD1/16499866904818506/epubprivate/OEBPS/Images/Figure-P35_10857.jpg?sign=1739148787-1lhgPvQYTgHWg7PBszFnNCSjprcC12i4-0-32e49c903eb7aa71efeff88d0f6b2ed1)
在本配置文件中一共定义了3个环境(不同的profile之间使用“---”分割)。
开发环境(profiles=dev、默认):端口定义为7070。
测试环境(profiles=beta):端口定义为8080。
生产环境(profiles=product):端口定义为80。
2.【mldnboot项目】如果要正常进行打包,还需要修改pom.xml文件,追加resource配置。
![](https://epubservercos.yuewen.com/688FD1/16499866904818506/epubprivate/OEBPS/Images/Figure-P36_10858.jpg?sign=1739148787-ZplX2OeOcK3aEwi69zHRpQwGXxfegsoO-0-467f07861c880e99d93283b532bcd934)
本程序主要的功能是进行源文件夹中内容的打包输出,配置完成后可以将配置文件打包到*.jar文件中。
3.【mldnboot-base项目】为项目打包,这里直接通过Eclipse进行打包配置(此时无法设置profile),如图2-18所示。
![](https://epubservercos.yuewen.com/688FD1/16499866904818506/epubprivate/OEBPS/Images/Figure-P36_1503.jpg?sign=1739148787-lI37uyTRz35JpGf0DUsYaUyWpcN0EU5I-0-dfcb8b875c6a7f4c6bdd3b424469d94d)
图2-18 项目打包
4.【mldnboot-base项目】项目打包完成后一定要运行程序,如果不做出任何的指派,那么默认配置的活跃profile(dev)就将直接起作用(java -jar mldnboot-base.jar)。
5.【mldnboot-base项目】如果要切换到不同的profile环境,可以在启动时动态配置。
![](https://epubservercos.yuewen.com/688FD1/16499866904818506/epubprivate/OEBPS/Images/Figure-P36_10860.jpg?sign=1739148787-a5bwpdP7MtuSI0m6XjEa9Mt85u0DMXHg-0-93f50f71433bcba94a87ec4a26abe70a)
此时在程序运行时将使用product作为运行环境配置。
提示:*.properties与*.yml配置不同。
使用application.yml进行多profile配置的时候,只需要在一个配置文件中使用“---”分割不同的profile配置。但是此类模式不适合于application.properties配置,此时应该采用不同的*.properties保存不同的配置,才可以实现多profile。
范例:定义3个针对不同运行环境的application.properties配置文件。
![](https://epubservercos.yuewen.com/688FD1/16499866904818506/epubprivate/OEBPS/Images/Figure-P37_10866.jpg?sign=1739148787-6hjURNlR2cgOASEOe9HZASALiT6yHA8s-0-f20ae0f1fdcfb88d542e8d44b6cd866b)
随后还是需要有一个公共的application.properties配置文件,用于指派可以使用的profile配置。
范例:定义公共的application.properties配置文件。
spring.profiles.active=beta
随后的使用形式与application.yml配置相同。