技术笔记:Profiles简介

简介: 技术笔记:Profiles简介

一、简介


在我们实际的开发中,有些配置文件在开发、测试或生产等不同环境中可能是不同的,例如数据库连接、redis等等相关的配置信息等。那我们如何在不同环境中自动实现配置的切换呢?


Spring给我们提供了 profiles 机制,下面看看在SpringBoot 中是如何使用 Profiles 功能的。


在 SpringBoot 中多环境配置文件名需要使用 //代码效果参考:http://www.lyjsj.net.cn/wz/art_23298.html

application-{profile}.properties 的格式,这里的 {profile} 对应的是你的环境标识。例如:

application-dev.properties — 这是开发环境


application-pro.properties — 这是生产环境


二、场景使用


1、配置文件的使用方法


在Resource目录下新建两个配置文件,分别命名为 application-dev.properties 以及 application-pro.yml,为了方便看到区别,我们分别在三个配置文件中分别指定tomcat启动端口:


application-dev.properties


server.port=9091


application-pro.yml


server:


port: 7091


application.properties


server.port=8001


#spring.profiles.active属性来设置


spring.profiles.active=pro


程序会默认加载 application.properties中的配置,我们想要使用对应的环境,


只需要在application.properties中使用spring.profiles.active属性来设置,值对应上面提到的 {profile},这里就是指dev、pro。


通过运行结果。我们可以看出,运行后的端口对应着 application-pro.yml 配置文件的 7091。


2、注解的用法//代码效果参考:http://www.lyjsj.net.cn/wz/art_23296.html


@Profile 注解


@Configuration


public class MyConfig {


/


相当于一个条件


如果application.properties 中active配置为 pro ,


则这个Bean交由Spring进行管理


/


@Bean


@Profile("pro")


public UsersBean getUser1(){


return new UsersBean();


}


/


相当于一个条件


如果application.properties 中active配置为 dev ,


则这个Bean交由Spring进行管理


/


@Bean


@Profile("dev")


public UsersBean getUser2(){


return new UsersBean();


}


/


没有加@Profile注解,则任何环境都会生效


则这个Bean交由Spring进行管理


/


@Bean


public UsersBean getUser3(){


return new UsersBean();


}


}


View Code


Spring获取Bean进行管理时,这个注解相当于一个条件,


如果 active 激活的是 pro,那么则获取上面那个Bean(getUser1方法)


如果 active 激活的是 dev,那么则获取中间那个Bean(getUser2方法)


注意:如果 application.properties 中没有配置 spring.profiles.active,则会取默认的Bean(getUser3方法),如果没有默认则没有符合条件的Bean。


3、命令行的方式


上面两种激活 profile 的方式,即在 application.properties 中指定属性 spring.profiles.active 的值和采用 @Profile 注解方式。


但是这种方式在实际项目中的使用并不合适,因为你每次提交代码还要手动修改 spring.profiles.active 的值。


所以我们还可以使用命令行的方式,SpringBoot 的程序一般是打成jar包,在使用 java -jar 命名执行jar包的时候,可以再后面加上:


--spring.profiles.active=dev;


我们的jar文件名为 spring-boot-Demo,那么我们我们启动项目的命令行为:


java -jar spring-boot-Demo-0.0.1.jar --spring.profiles.active=pro


采用命令行的方式,在 application.properties 配置文件中就不需要添加 spring.profiles.active 配置信息了,只需要在启动项目时加入后面的命令。


4、Idea的配置方式。


假如我们实际开发环境中是用Idea进行开发的话,还可以修改启动配置,进行程序启动类传参:


启动的时候传入参数:


--sping-profiles-active=dev


也可以使用虚拟机传参,这种方式和程序类启动传参类似。给虚拟机传入参数命令:


-Dspring.profiles.active=dev


这两种传参方式在开发中都可以实现激活 spring.profiles.active。


但是实际环境中不建议使用这种方式,因为服务器上不太可能有Idea这种工具。

相关文章
|
2月前
|
开发框架 前端开发 C#
从零开始学 Blazor 创建 Web 应用,入门指南超详细!带你轻松开启精彩的开发之旅!
【8月更文挑战第31天】在互联网时代,Web应用开发愈发重要,Blazor作为新兴框架,允许使用C#和.NET技术构建交互式Web应用,提高开发效率与代码可维护性。本文将从零开始引导读者了解Blazor的基本概念,安装设置步骤,项目创建及运行方法。通过简单的示例介绍Blazor的基本结构,包括Pages、Shared等文件夹用途,以及Program.cs文件的功能。同时,还将演示如何创建Razor页面和组件,实现数据绑定与事件处理,帮助读者快速入门Blazor开发。
22 0
|
2月前
|
SQL 关系型数据库 数据库连接
Entity Framework Core 入门教程来袭!快速上手强大的 ORM 工具,开启高效数据库开发之旅!
【8月更文挑战第31天】Entity Framework Core(EF Core)是一个轻量且可扩展的对象关系映射(ORM)框架,允许开发者使用 .NET 语言操作数据库而无需直接编写 SQL 语句。本教程涵盖 EF Core 的安装、数据库上下文创建、数据库连接配置及常见数据库操作(如添加、查询、更新和删除),并介绍如何利用数据库迁移功能安全地更改数据库结构。通过本教程,你可以快速掌握 EF Core 的基本用法,提高开发效率。
37 0
|
2月前
|
开发工具 vr&ar 图形学
XR Interaction Toolkit教程⭐一、简介、安装和基本配置
XR Interaction Toolkit教程⭐一、简介、安装和基本配置
|
存储 监控 Java
Disconf源码解析(第一章)
用过Disconf的小伙伴都知道,这两个Bean配置是必不可少的,那么这两个Bean的作用是什么呢?其实很简单,Disconf有一个Web端,第一个DisconfMgrBean的作用就是从Web端下载配置文件,然后解析配置文件将配置信息存到Disconf配置仓库中,而DisconfMgrBeanSecond的作用就是给带有@DisconfFile注解的bean或者带有@DisconfItem注解的配置项注值。
Disconf源码解析(第一章)
|
存储 移动开发 小程序
uniapp环境搭建以及基础配置详解
安装编辑器 HbuilderX(HbuilderX 是通用的前端开发工具,但为 uni-app 做了特别强化)。 下载 APP 开发板,可开箱即用。 安装微信开发者工具。
772 0
uniapp环境搭建以及基础配置详解
|
JSON 前端开发 安全
SpringBoot官网学习翻译笔记
SpringBoot官网学习翻译笔记
217 0
SpringBoot官网学习翻译笔记
|
缓存 NoSQL Java
SpringDataRedis:第一章:简介
SpringDataRedis:第一章:简介
|
Java 关系型数据库 MySQL
Spring源码从入门到精通---@Profile(十五)
Spring源码从入门到精通---@Profile(十五)
Spring源码从入门到精通---@Profile(十五)
|
安全 架构师 NoSQL
SpringBoot从入门到精通(二十五)搞懂自定义系统配置
Spring Boot 支持多种格式的配置文件格式,目前最常用的配置文件格式是 properties和 yml。所以,这里默认是用.properties文件,其实,yml格式文件的用法也基本类似。Spring Boot 最常用的几种读取配置文件的方法:分别是@Value注解,@ConfigurationProperties注解和Environment接口。这三种注解可以配合着@PropertySource来使用
SpringBoot从入门到精通(二十五)搞懂自定义系统配置
|
存储 Dubbo Cloud Native
开放下载 | 和 4000+Java 开发者共读《Spring Cloud Alibaba 从入门到实战》
《Spring Cloud Alibaba 从入门到实战》是 Spring Cloud Alibaba 训练营的总结,书籍涵盖从基础知识到具体技术的讲解,从要点到实践,让你也能从入门到实战。
18522 0
下一篇
无影云桌面