spring-boot 速成(5) profile区分环境

maven中的profile概念,在spring-boot中一样适合,只要约定以下几个规则即可: 

一、不同环境的配置文件以"application-环境名.yml"命名

举个粟子:

如果有二个环境dev、prod,项目工程中有上述二个文件即可。

 

二、主配置文件application.yml中,显式激活某个环境

这样默认就激活了dev环境

 

三、与环境相关的差异配置部分,放在各自的配置文件中

举第二个粟子

 

四、线上部署/运行时动态环境切换

通常开发阶段默认激活的是dev环境,部署到线上时是prod环境,但是打包发布时,可能经常会忘记了改application.yml中的默认激活环境,可以参考下面的几种做法:

4.1 参考上一节的做法,部署时在./config下放置一个application.yml来覆盖默认的激活环境(这个可以在打包一键部署的shell脚本中自动处理)

4.2 启动shell脚本中,动态指定,例如 java -jar spring-boot-web-demo-0.0.1-SNAPSHOT.jar --spring.profiles.active=prod

4.3 也可以参考gradle项目中profile的通用做法(见之前的文章: gradle项目中profile的实现

推荐用4.2的做法,简单!

时间: 2024-10-22 20:27:02

spring-boot 速成(5) profile区分环境的相关文章

Spring Boot 配置优先级顺序

一般在一个项目中,总是会有好多个环境.比如: 开发环境 -> 测试环境 -> 预发布环境 -> 生产环境 每个环境上的配置文件总是不一样的,甚至开发环境中每个开发者的环境可能也会有一点不同,配置读取可是一个让人有点伤脑筋的问题. Spring Boot提供了一种优先级配置读取的机制来帮助我们从这种困境中走出来. 常规情况下,我们都知道Spring Boot的配置会从application.properties中读取.实际上,从resource目录下的application.propert

深入实践Spring Boot导读

Preface?前 言 Spring Boot作为Java编程语言的一个全新开发框架,在国内外才刚刚兴起,还未得到普及使用.相比于以往的一些开发框架,Spring Boot不但使用更加简单,而且功能更加丰富,性能更加稳定而健壮.使用Spring Boot开发框架,不仅能提高开发速度,增强生产效率,从某种意义上,可以说是解放了程序员的劳动,而且一种新技术的使用,更能增强系统的稳定性和扩展系统的性能指标.本书就是本着提高开发效率,增强系统性能,促进新技术的普及使用这一目的而写的. Spring Bo

Spring Data JPA方法定义规范【从零开始学Spring Boot】

视频&交流平台] à SpringBoot网易云课堂视频 http://study.163.com/course/introduction.htm?courseId=1004329008 à Spring Boot交流平台 http://412887952-qq-com.iteye.com/blog/2321532           事情的起因:有人问过我们这个这个问题:为什么我利用Spring data jpa写的方法没有按照我想要的情况进行执行呢?我记得当时只是告诉他你你先看看Spring

57. Spring 自定义properties升级篇【从零开始学Spring Boot】

 注解ConfigurationProperties和EnableAutoConfiguration的区别: @EnableConfigurationProperties tells Spring to treat this class as a consumer of application.yml/properties values( {@link ConfigurationProperties} beans can be registered in the standard way (fo

Spring Boot的启动器Starter详解

  Spring Boot的启动器Starter详解 作者:chszs,未经博主允许不得转载.经许可的转载需注明作者和博客主页:http://blog.csdn.net/chszs Spring Boot应用启动器基本的一共有44种,具体如下: 1)spring-boot-starter 这是Spring Boot的核心启动器,包含了自动配置.日志和YAML. 2)spring-boot-starter-actuator 帮助监控和管理应用. 3)spring-boot-starter-amqp

spring boot 2.0特性之profile与日志

profile 简介 profile提供了应用的隔离,使其在某种特定的环境下才能生效,任何的@Component与@Configuration能够被@Profile标记限制其何时加载,如下代码所示: @Configuration @Profile("production") public class ProductionConfiguration { // ... } 通常情况下,spring可以使用spring.profiles.active Environment 去指定哪一个pr

Spring Boot Profile使用

Spring Boot使用@Profile注解可以实现不同环境下配置参数的切换,任何@Component或@Configuration注解的类都可以使用@Profile注解. 例如: @Configuration @Profile("production") public class ProductionConfiguration { // ... } 通常,一个项目中可能会有多个profile场景,例如下面为test场景: @Configuration @Profile("

spring boot profile试用

spring boot profile试用 项目中需要在不同环境切换,之前类似的需求,主要在于一些配置的不同,如数据库配置等.这样的场景,通过maven的profile,结合resource filter即可.但是这次需要针对不同的场景,使用不同的实现类,以此来对接外部不同的系统. 本文基本上参考了spring博客中的介绍,通过@profile注解,来区分不同的使用场景. 自定义场景注解 @Profile注解需要接受一个字符串,作为场景名.这样每个地方都需要记住这个字符串.Spring的@Pro

《深入实践Spring Boot》一第1章Spring Boot入门1.1 配置开发环境

第1章 Spring Boot入门 在使用Spring Boot框架进行各种开发体验之前,要先配置好开发环境.首先安装JDK,然后选择一个开发工具,如Eclipse IDE和IntelliJ IDEA(以下简称IDEA)都是不错的选择.对于开发工具的选择,本书极力推荐使用IDEA,因为它为Spring Boot提供了许多更好和更贴切的支持,本书的实例都是使用IDEA创建的.同时,还需要安装Apache Maven和Git客户端.所有这些都准备好之后,我们就能开始使用Spring Boot了. 1