iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >spring boot 使用profile来分区配置的操作
  • 701
分享到

spring boot 使用profile来分区配置的操作

2024-04-02 19:04:59 701人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

Spring Boot 使用profile来分区配置 很多时候,我们项目在开发环境和生成环境的环境配置是不一样的,例如,数据库配置,在开发的时候,我们一般用测试数据库,而在生产环境的

Spring Boot 使用profile来分区配置

很多时候,我们项目开发环境和生成环境的环境配置是不一样的,例如,数据库配置,在开发的时候,我们一般用测试数据库,而在生产环境的时候,我们是用正式的数据,这时候,我们可以利用profile在不同的环境下配置用不同的配置文件或者不同的配置

spring boot允许你通过命名约定按照一定的格式(application-{profile}.properties)来定义多个配置文件,然后通过在application.properyies通过spring.profiles.active来具体激活一个或者多个配置文件,如果没有没有指定任何profile的配置文件的话,spring boot默认会启动application-default.properties。

profile的配置文件可以按照application.properyies的放置位置一样,放于以下四个位置,

  • 当前目录的 “/config”的子目录下
  • 当前目录下
  • classpath根目录的“/config”包下
  • classpath的根目录下

在这里我们就定义俩个profile文件,application-cus1.properties和application-cus2.properties,并在俩个文件中都分别写上变量cusvar=cus1和cusvar=cus2

这里写图片描述

我们在application.properyies也写上,并把profile切换到application-cus1.properties的配置文件


cusvar=cus3
spring.profiles.active=cus1

可以通过这样子来测试


@RestController
@RequestMapping("/task")
public class TaskController {
    @RequestMapping(value = {"/",""})
    public String hellTask(@Value("${cusvar}")String cusvar ){
        return "hello task !! myage is " + cusvar;
    }
}

在这里可以看到spring.profiles.active激活的profile不同,打印出来的结果也不一样。

除了可以用profile的配置文件来分区配置我们的环境变量,在代码里,我们还可以直接用@Profile注解来进行配置,例如数据库配置,这里我们先定义一个接口


public interface DBConnector {
    public void configure();    
}

分别定义俩个实现类来实现它



@Component
@Profile("testdb")
public class TestDBConnector implements DBConnector {
    @Override
    public void configure() {
        System.out.println("testdb");
    }
}

@Component
@Profile("devdb")
public class DevDBConnector implements DBConnector {
    @Override
    public void configure() {
        System.out.println("devdb");
    }
}

通过在配置文件激活具体使用哪个实现类


spring.profiles.active=testdb

然后就可以这么用了


@RestController
@RequestMapping("/task")
public class TaskController {
    @Autowired DBConnector connector ;
    @RequestMapping(value = {"/",""})
    public String hellTask(){
        connector.configure(); //最终打印testdb     
        return "hello task !! myage is " + myage;
    }
}

除了spring.profiles.active来激活一个或者多个profile之外,还可以用spring.profiles.include来叠加profile


spring.profiles: testdb
spring.profiles.include: proddb,prodMQ

spring boot配置之Profile的使用

profile是Spring对不同环境提供不同配置功能的支持,可以通过激活

指定参数等方式快速切换环境

1. 多profile文件形式

  • 格式:application-{profile}.properties
  • 例如常见的:application-dev.properties, application-uat.properties, application-prod.properties

2. 多profile文档块模式


spring:
  profiles: dev
server:
  port: 8081
---
spring:
  profiles: uat
server:
  port: 8082
---
spring:
  profiles: prod
server:
  port: 8083

在这里插入图片描述

在这里插入图片描述

3. 激活方式

1.在默认配置文件application.properties中指定 spring.profiles.active=dev

在这里插入图片描述


application.properties文件
#激活application-dev.properties中的配置
spring.profiles.active=dev

application-dev.properties文件
server.port=8081

2.命令行


java -jar ch02-SpringBoot-config-profile-0.0.1-SNAPSHOT.jar --spring.profiles.active=dev

3.虚拟机参数 常用

在"VM options"中添加-Dspring.profiles.active=dev

在这里插入图片描述

在这里插入图片描述

4.“Program atguments”

在“Program atguments”中添加–spring.profiles.active=dev

在这里插入图片描述

4. 不同位置的配置文件优先级

SpringBoot启动会扫描以下位置的application.properties/application.yml文件作为SpringBoot的默认配置文件

  • file:./config/
  • file:./
  • classpath:/config/
  • classpath:/

以上是按照优先级从高到低的顺序,所有问题的文件都会被加载。如果配置文件中存在相同配置,则高优先级配置内容会覆盖低优先级配置内容。SpringBoot会从这四个位置全部加载主配置文件生成一个互补配置的文件。还可通过spring.congif.location改变默认的配置文件位置

以下图中的优先级为1–>2–>3–>4, 不过1和2不会被打到包里

在这里插入图片描述

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

--结束END--

本文标题: spring boot 使用profile来分区配置的操作

本文链接: https://www.lsjlt.com/news/129682.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • spring boot 使用profile来分区配置的操作
    spring boot 使用profile来分区配置 很多时候,我们项目在开发环境和生成环境的环境配置是不一样的,例如,数据库配置,在开发的时候,我们一般用测试数据库,而在生产环境的...
    99+
    2024-04-02
  • Spring Boot的Profile配置详解
    Profile 是Spring Boot用来针对不同的环境对不同的配置提供的支持,全局Profile配置使用application-{profile}.properties,如: application-dev.properties 可以表...
    99+
    2023-05-31
    spring boot profile
  • Spring Boot 中Profile配置体系的示例分析
    这篇文章将为大家详细讲解有关Spring Boot 中Profile配置体系的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Pre配置体系是基于 Spring Boot 框架开发应用程序的基础,而...
    99+
    2023-06-15
  • 全面解读Spring Boot 中的Profile配置体系
    目录PreSpring Boot 中的配置体系配置文件与 Profile主 application.properties 中指定激活的ProfileProfile 配置信息只保存在一...
    99+
    2024-04-02
  • Spring Boot使用和配置Druid
    引入依赖包<!--druid--><dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artif...
    99+
    2023-05-31
    spring boot druid
  • 详解Spring Boot下Druid连接池的使用配置分析
    引言: 在Spring Boot下默认提供了若干种可用的连接池,Druid来自于阿里系的一个开源连接池,在连接池之外,还提供了非常优秀的监控功能,这里讲解如何与Spring Boot实现集成。1.  环境描述spring Boot...
    99+
    2023-05-31
    spring boot druid
  • Spring Boot配置方式的示例分析
    这篇文章给大家分享的是有关Spring Boot配置方式的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Spring Boot 允许通过外部配置让你在不同的环境使用同一应用程序的代码,简单说就是可以通过配...
    99+
    2023-05-30
    spring boot
  • Spring Boot全局配置和注解的操作方法有哪些
    这篇文章主要讲解了“Spring Boot全局配置和注解的操作方法有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Spring Boot全局配置和注解的操作方法有哪些”吧!目录零、学习目...
    99+
    2023-06-20
  • Spring boot外部配置的示例分析
    这篇文章给大家分享的是有关Spring boot外部配置的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。前言在项目中为了灵活配置,我们常采用配置文件,常见的配置文件就比如xml和properties,sp...
    99+
    2023-05-30
    springboot
  • Spring Boot中使用Spring Retry重试框架的操作方法
    目录Spring Retry 在SpringBoot 中的应用Maven依赖注解使用开启Retry功能注解@Retryable注解@Recover注解@CircuitBreakerR...
    99+
    2024-04-02
  • 使用Spring Boot如何配置maven文件
    使用Spring Boot如何配置maven文件?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。1.配置maven文件pom.xml<&#63;xml versio...
    99+
    2023-05-31
    springboot maven
  • spring boot项目中如何使用nacos作为配置中心
    目录使用nacos作为配置中心1、pom.xml中引入nacos支持包2、pom.xml中指向nacos3、配置文件中使用nacos配置项总结使用nacos作为配置中心 利用naco...
    99+
    2022-12-29
    spring boot项目 使用nacos配置中心 nacos作为配置中心
  • Spring Boot两种全局配置和两种注解的操作方法
    目录零、学习目标 一、全局配置文件概述二、Application.properties配置文件1、配置tomcat端口号和web虚拟路径2、对象类型的配置与使用3、两种属性...
    99+
    2024-04-02
  • 使用JavaConfig代替xml实现Spring配置操作
    目录JavaConfig代替xml实现Spring配置简单实体类JavaConfig配置类测试类脱离xml用JavaConfig配置Spring情况一情况二JavaConfig代替x...
    99+
    2024-04-02
  • Spring@Value使用获取配置信息为null的操作
    一、项目背景 1、介绍: 最近在springboot项目中需要做一个阿里云OSS图片上传功能点,将OSS图片上传代码提取到公共工具类中,为了方便其他模块调用。 2、问题介绍 在公共工...
    99+
    2024-04-02
  • 如何使用spring boot starter redis配置文件
    本篇文章为大家展示了如何使用spring boot starter redis配置文件,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。spring-boot-starter-Redis主要是通过配置R...
    99+
    2023-05-31
    springboot starter redis
  • Cli如何在spring Boot中配置并使用
    Cli如何在spring Boot中配置并使用?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。SpringBootCLI是一个命令行工具,可用于快速搭建基于spring的原型...
    99+
    2023-05-31
    springboot cli
  • 详解spring-boot actuator(监控)配置和使用
    在生产环境中,需要实时或定期监控服务的可用性。spring-boot 的actuator(监控)功能提供了很多监控所需的接口。简单的配置和使用如下:1、引入依赖:<dependency> <groupId>org...
    99+
    2023-05-31
    spring boot actuator
  • Profiles 如何在Spring Boot 中配置与使用
    这期内容当中小编将会给大家带来有关Profiles 如何在Spring Boot 中配置与使用,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Spring Profiles 提供了一套隔离应用配置的方式,不...
    99+
    2023-05-31
    springboot profiles les
  • Spring Boot 使用 HikariCP 连接池配置详解
    Spring Boot 使用 HikariCP 连接池配置详解 HikariCP 是一个高性能的 JDBC 连接池组件。 Spring Boot 2.x 将其作为默认的连接池组件,项目中添加 spring-boot-starter-jdbc...
    99+
    2023-08-18
    mybatis mysql java spring boot
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作