详解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去读

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

时间: 2017-05-05

详解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

spring boot整合CAS配置详解

在下不才,以下是我花了好几天的时间才整合出来的在spring boot里面的CAS配置整合 为了帮助没搞定的人,毕竟自己踩了很多坑,一步一步爬过来的,有什么不足之处可以给建议  谢谢(小部分代码是整合他人的) 1.不多废话,直接上最重要的代码,以下代码整合cas的重要过程 import org.jasig.cas.client.authentication.AuthenticationFilter; import org.jasig.cas.client.session.SingleSignOu

Spring Boot Redis 集成配置详解

spring Boot 熟悉后,集成一个外部扩展是一件很容易的事,集成Redis也很简单,看下面步骤配置: 一.添加pom依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-redis</artifactId> </dependency> 二.创建 RedisClient.java 注意该类存放的pack

在Linux系统上安装Spring boot应用的教程详解

Unix/Linux 服务 systemd 服务 操作过程 1. 安装了JDK的centOS7虚拟机 注意下载linux版本JDK的时候不能直接通过wget这种直接链接下载,否则会解压不成功,应该打开原官网,点击同意许可后点击下载(这种方式下载很慢),比较好的方式是复制下载页的地址到迅雷,通过迅雷打开该下载页,同意许可后点击下载. 下载后解压.配置环境变量 tar -zxvf jdk1.8.0_211.jar.gz 环境变量配置:/etc/profile 文件最后添加如下 export JAVA

Spring boot 使用mysql实例详解

Spring boot 使用mysql实例详解 开发阶段用 H2即可,上线时,通过以下配置切换到mysql,spring boot将使用这个配置覆盖默认的H2. 1.建立数据库: mysql -u root CREATE DATABASE springbootdb 2.pom.xml: <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId&g

Dubbo在Spring和Spring Boot中的使用详解

一.在Spring中使用Dubbo 1.Maven依赖 <dependency> <groupId>com.alibaba</groupId> <artifactId>dubbo</artifactId> <version>2.5.3.6</version> <exclusions> <exclusion> <groupId>log4j</groupId> <artif

Spring Boot 集成MyBatis 教程详解

Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置.通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者. 在集成MyBatis前,我们先配置一个druid数据源. Spring Boot 系列 1.Spring Boot 入门 2.Spring Boot 属性配置

spring boot 结合jsp案例详解

这篇文章主要介绍了spring boot 结合jsp案例详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 引入依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- jstl是⼀

spring boot linux启动方式详解

前台启动 java -jar XXX.jar 后台启动 java -jar xxx.jar & 区别:前台启动ctrl+c就会关闭程序,后台启动ctrl+c不会关闭程序 制定控制台的标准输出 java -jar xxx.jar > catalina.out 2>&1 & catalina.out将标准输出指向制定文件catalina.out 2>&1 输出所有的日志文件 & 后台启动  脚本启动 #!/bin/sh #功能简介:启动上层目录下的ja

Spring之WEB模块配置详解

Spring框架七大模块简单介绍 Spring中MVC模块代码详解 Spring的WEB模块用于整合Web框架,例如Struts1.Struts2.JSF等 整合Struts1 继承方式 Spring框架提供了ActionSupport类支持Struts1的Action.继承了ActionSupport后就能获取Spring的BeanFactory,从而获得各种Spring容器内的各种资源 import org.springframework.web.struts.ActionSupport;