如何使用Spring Boot的Profiles

Spring提供了@Profile让我们为不同的环境创建不同的配置:例如,假设我们有生产,开发和测试等环境。在开发环境中,我们可以启用开发配置文件;在生产环境中我们可以启用生产配置文件等。 我们可以使用profile文件名称创建属性文件:application-{profile}.properties,我们可以使用名为application-dev.properties和application-production.properties的两个文件为开发和生产配置文件配置不同的数据源。 在application-production.properties文件中,我们可以设置MySql数据源:
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/db
spring.datasource.username=root
spring.datasource.password=root

可以在application-dev.properties文件中为dev配置文件配置相同的属性,以使用内存中的H2数据库:

spring.datasource.driver-class-name=org.h2.Driver
spring.datasource.url=jdbc:h2:mem:db;DB_CLOSE_DELAY=-1
spring.datasource.username=sa
spring.datasource.password=sa

可以使用属性文件.properties / .yml、命令行和以编程等三种方式激活相应的配置文件。 激活方式:

  1. 使用 application.properties属性文件激活 .
spring.profiles.active=dev

2.使用命令行, 当我们在命令行添加一个活动配置时,将取代属性文件中的活动配置。

java -jar -Dspring.profiles.active=dev myapp.jar

3.通过编程激活:

@Component
@Profile("dev")  //也可以配置成@Profile("!dev")
public class DevDatasourceConfig
..

或者

@SpringBootApplication
public class MyApplication {
    public static void main(String[] args) {
    SpringApplication application = new SpringApplication(MyApplication.class);
    application.setAdditionalProfiles("dev");
    application.run(args);
    }       
}

4.在Spring测试中,使用@ActiveProfiles注释添加活动配置文件。

5.系统环境激活:

export spring_profiles_active=dev

这是Spring Boot配置外部化的灵活。

原文发布于微信公众号 - Linyb极客之路(gh_c420b2cf6b47)

原文发表时间:2018-08-25

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏hbbliyong

解决SQL Server 2008安装时提示:重新启动计算机 失败

a、重启机器,再进行安装,如果发现还有该错误,请按下面步骤: b、在开始->运行中输入regedit c、到HKEY_LOCAL_MACHINE\SYSTE...

4275
来自专栏开源优测

使用virtualenv搭建Python虚拟环境

virtualenv用来部署独立Python的一个工具,用来解决版本依赖,及不兼容的项目。

942
来自专栏用户画像

MAC卸载python

官网介绍:https://docs.python.org/3/using/mac.html#getting-and-installing-macpython

1232
来自专栏互联网研发闲思录

对Spring运用的一些思考

       最近使用spring总是遇到启动时启动不起来,或者启动起来一会就服务就关闭掉。        停下来想想不是spring不好复杂,而是我对它掌握不...

2847
来自专栏游戏杂谈

JNI开发示例

安装:eclipse(http://www.eclipse.org/)、CDT(C/C++ Development Tooling)、ADT(Android D...

1152
来自专栏流柯技术学院

使用visualvm远程监控JVM LINUX服务器配置方法

进入$JAVA_HOME所在的根目录的/jre/lib/management子目录下,

2011
来自专栏java、Spring、技术分享

Eureka Server

从图中可以看出Eureka服务器提供服务注册与服务查找功能。多台服务器可以形成Eureka服务器集群,以提供高可用的服务。 Eureka 服务器并没有提供后台...

1126
来自专栏破晓之歌

创建Python2和Python3的虚拟环境 原

1.创建Python2和Python3的虚拟环境virtualenv:https://www.cnblogs.com/tk2049jq/p/7043509.ht...

994
来自专栏云计算教程系列

如何在Ubuntu 14.04上安装Bacula-Web

Bacula-Web是一个PHP Web应用程序,它提供了一种查看已经运行的Bacula备份作业的摘要和图形的简便方法。虽然它不允许您以任何方式控制Bacula...

1502
来自专栏Java技术栈

SpringCloud配置中心客户端读取配置

微服务连接配置中心来实现外部配置的读取。 引入依赖 <dependencies> <dependency> <groupId>org.s...

3756

扫码关注云+社区

领取腾讯云代金券