详解springboot + profile(不同环境读取不同配置)

具体做法:

  1. 不同环境的配置设置一个配置文件,例如:dev环境下的配置配置在application-dev.properties中;prod环境下的配置配置在application-prod.properties中。
  2. 在application.properties中指定使用哪一个文件

1、application-dev.properties(dev环境下的配置)

profile = dev_envrimont

2、application-prod.properties(prod环境下的配置)

 profile = prod_envrimont

3、application.properties

spring.data.mongodb.uri=mongodb://192.168.22.110:27017/myfirstMongodb 

 #spring.profiles.active
 spring.profiles.active=dev

说明:上边的配置表示使用dev环境下的配置。

注意:spring.data.mongodb.uri=mongodb://192.168.22.110:27017/myfirstMongodb该配置是application-dev.properties没有的配置

4、Controller

@Autowired
  private Environment env;

  @RequestMapping("/testProfile")
  public String testProfile(){
    return env.getProperty("profile");
  }

测试:

  1. 上述代码执行后的结果是:dev_envrimont和mongodb://192.168.22.110:27017/myfirstMongodb
  2. 如果application.properties的配置改为:spring.profiles.active=prod,则结果是:prod_envrimont
  3. 如果application.properties的配置改为:spring.profiles.active=prod,而application.properties中也配置了profile=xxx(不管该配置配置在spring.profiles.active=prod的上方还是下方),这个时候结果是:prod_envrimont
  4. 如果application.properties的配置改为:spring.profiles.active=prod,而application.properties中也配置了profile=xxx(不管该配置配置在spring.profiles.active=prod的上方还是下方),但是application-prod.properties删掉了profile = prod_envrimont,这个时候结果是:xxx

结论:

  1. 各个环境公共的配置写在application.properties中
  2. 各个模块独有的配置配置在自己的application-{xxx}.properties文件中
  3. 程序读取的时候优先读取application.properties中选中的profile的配置,若读不到才会从application.properties去读

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • 详解Spring Boot Profiles 配置和使用

    介绍 Spring Profiles 提供了一套隔离应用配置的方式,不同的 profiles 提供不同组合的配置,在不同的环境中,应用在启动时通过选择激活某些特定的 profiles 来适应运行时环境,以达到在不同的环境可以使用相同的一套程序代码. 环境 JDK 8 Maven 3 IntelliJ IDEA 2016 Spring Boot 1.5.2.RELEASE @Profiles 你可以在任何 @Component(@Service,@Repository) 或 @Configurat

  • Spring Boot的Profile配置详解

    Profile 是Spring Boot用来针对不同的环境对不同的配置提供的支持,全局Profile配置使用application-{profile}.properties,如: application-dev.properties 可以表示为开发环境. 然后通过application.properties文件中的spring.profiles.active=dev来设置 在src/main/resources下面新建 application-dev.properties和application

  • 详解SpringBoot项目docker环境运行时无限重启问题

    可能是我开始处理问题的思路不对,现在描述问题可能也有点乱,但是里面可能的处理方式希望能帮到遇到我这个坑的人 描述:springboot项目,docker镜像里面运行,看docker的日志,项目启动成功后,隔了一分钟左右他就自动重新启动,然后造成网站接口访问的时候nginx报502 gateway啥的,有两台服务器,一个是文件服务器,运行了很简单的上传下载文件的代码以及验证token,另一台运行了java应用,两台服务器都在一次更新项目的镜像,运行过后遇到了这个问题,很奇怪. 然后我将项目弄成ja

  • 详解springboot + profile(不同环境读取不同配置)

    具体做法: 不同环境的配置设置一个配置文件,例如:dev环境下的配置配置在application-dev.properties中:prod环境下的配置配置在application-prod.properties中. 在application.properties中指定使用哪一个文件 1.application-dev.properties(dev环境下的配置) profile = dev_envrimont 2.application-prod.properties(prod环境下的配置) pr

  • 详解springboot之jackson的两种配置方式

    springboot 针对jackson是自动化配置的,如果需要修改,有两种方式: 方式一:通过application.yml 配置属性说明:## spring.jackson.date-format指定日期格式,比如yyyy-MM-dd HH:mm:ss,或者具体的格式化类的全限定名 spring.jackson.deserialization是否开启Jackson的反序列化 spring.jackson.generator是否开启json的generators. spring.jackson

  • 详解springboot采用多数据源对JdbcTemplate配置的方法

    springboot多数据源配置,代码如下 DataSourceConfig package com.rookie.bigdata.config; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.boot.jdbc.

  • 详解Webpack + ES6 最新环境搭建与配置

    一,准备工作 1.下载node.js 和 npm 2.将镜像源替换为淘宝镜像 二,创建目录及安装webpack创建项目 在命令行中输入 npm init -y 我们看到了项目中多了一个package.json文件,它定义了这个项目中所需各种模板及项目中的配置信息.该对象的每一个成员就是当前项目的一项设置.详细设置信息请参考 https://docs.npmjs.com/files/package.json 安装webpack 全局安装webpack,在命令行输入 npm install webp

  • 详解SpringBoot迭代发布JAR瘦身配置

    默认情况下,插件 spring-boot-maven-plugin 会把整个项目打包成一个可运行的Jar包(即所谓的Flat Jar),导致了这个Jar包很大(通常有几十M+).如今迭代发布时常有的事情,每次都上传一个如此庞大的文件,会浪费很多时间,有些时候上传的过程中还会出错. 造成Jar包很大的根本原因就是依赖第三方的jar很多,很大,下面我们就把第三方的JAR与项目代码分离,第三方的JAR把移除到lib文件夹中,即可实现为我们的可执行JAR瘦身,配置如下: <plugins> <!

  • 详解SpringBoot读取配置文件的N种方法

    我们在项目开发中经常会用到配置信息,例如数据库连接的帐号.密码等,而为了方便维护,我们通常将这些信息放到配置文件中.在需要用到这些配置信息时,可以通过代码获取.下面我们看看Spring中有哪些获取配置信息的方法. PropertiesLoaderUtils读取 通过ClassPathResource加载配置文件资源,结合PropertiesLoaderUtils类读取,源码如下: ClassPathResource resource = new ClassPathResource("applic

  • 详解SpringBoot注解读取配置文件的方式

    一.@Value读取application.properties配置文件中的值 application.properties配置文件 fileName=configName PropertiesConfig类文件 import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; @Component public class PropertiesC

  • 详解springboot启动时是如何加载配置文件application.yml文件

    今天启动springboot时,明明在resources目录下面配置了application.yml的文件,但是却读不出来,无奈看了下源码,总结一下springboot查找配置文件路径的过程,能力有限,欢迎各位大牛指导!!! spring加载配置文件是通过listener监视器实现的,在springboot启动时: 在容器启动完成后会广播一个SpringApplicationEvent事件,而SpringApplicationEvent事件是继承自ApplicationEvent时间的,代码如下

  • 详解SpringBoot的三种缓存技术(Spring Cache、Layering Cache 框架、Alibaba JetCache 框架)

    引言 ​前两天在写一个实时数据处理的项目,项目要求是 1s 要处理掉 1k 的数据,这时候显然光靠查数据库是不行的,技术选型的时候老大跟我提了一下使用 Layering-Cache 这个开源项目来做缓存框架. ​之间问了一下身边的小伙伴,似乎对这块了解不多.一般也就用用 Redis 来缓存,应该是很少用多级缓存框架来专门性的管理缓存吧. ​趁着这个机会,我多了解了一些关于 SpringBoot 中缓存的相关技术,于是有了这篇文章! 在项目性能需求比较高时,就不能单单依赖数据库访问来获取数据了,必

随机推荐