首页 > 其他分享 >SpringBoot之Profile的认识

SpringBoot之Profile的认识

时间:2023-08-27 23:32:51浏览次数:64  
标签:Profile INFO 26 SpringBoot 23 认识 08 2023 main

一、默认的Profile

如果不指定要激活的Profile,SpringBoot会使用默认的default环境。我们在启动日志中可以看到:

2023-08-26 23:16:31.572  INFO 6440 --- [           main] c.e.w.WebSocketDemoApplication           : No active profile set, falling back to 1 default profile: "default"
2023-08-26 23:16:32.440  INFO 6440 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat initialized with port(s): 8080 (http)

二、激活Profile

我们可以使用spring.profiles.active参数指定要激活的Profile,比如我们在application.properties文件中设置spring.profiles.active=dev就说明我们当前的项目使用dev这个配置文件。

我们创建两个配置文件,并且激活了dev环境。

SpringBoot之Profile的认识_配置文件

SpringBoot之Profile的认识_Profile_02

我们启动项目然后发现启动日志使用了dev的环境配置。

2023-08-26 23:23:49.432  INFO 8780 --- [           main] c.e.w.WebSocketDemoApplication           : The following 1 profile is active: "dev"
2023-08-26 23:23:50.403  INFO 8780 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat initialized with port(s): 8081 (http)
2023-08-26 23:23:50.411  INFO 8780 --- [           main] o.apache.catalina.core.StandardService   : Starting service [Tomcat]
2023-08-26 23:23:50.411  INFO 8780 --- [           main] org.apache.catalina.core.StandardEngine  : Starting Servlet engine: [Apache Tomcat/9.0.78]
2023-08-26 23:23:50.611  INFO 8780 --- [           main] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext
2023-08-26 23:23:50.611  INFO 8780 --- [           main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 1121 ms
2023-08-26 23:23:51.025  INFO 8780 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port(s): 8081 (http) with context path ''

我们还可以再启动方法上进行激活。

示例代码如下:

package com.example.websocketdemo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class WebSocketDemoApplication {

    public static void main(String[] args) {
        SpringApplication springApplication = new SpringApplication(WebSocketDemoApplication.class);
        springApplication.setAdditionalProfiles("dev");
        springApplication.run(args);
    }

}

我们启动项目可以实现同样的效果。

2023-08-26 23:26:00.958  INFO 8028 --- [           main] c.e.w.WebSocketDemoApplication           : The following 1 profile is active: "dev"
2023-08-26 23:26:01.906  INFO 8028 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat initialized with port(s): 8081 (http)
2023-08-26 23:26:01.914  INFO 8028 --- [           main] o.apache.catalina.core.StandardService   : Starting service [Tomcat]
2023-08-26 23:26:01.915  INFO 8028 --- [           main] org.apache.catalina.core.StandardEngine  : Starting Servlet engine: [Apache Tomcat/9.0.78]
2023-08-26 23:26:02.121  INFO 8028 --- [           main] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext
2023-08-26 23:26:02.121  INFO 8028 --- [           main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 1095 ms
2023-08-26 23:26:02.518  INFO 8028 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port(s): 8081 (http) with context path ''
2023-08-26 23:26:02.529  INFO 8028 --- [           main] c.e.w.WebSocketDemoApplication           : Started WebSocketDemoApplication in 2.18 seconds (JVM running for 4.155)

三、切换Profile

我们还可以通过命令行参数的方式临时替换Profile,比如:java -jar demo.jar --spring.profiles.active=dev

命令行参数的优先级要比配置文件的优先级高,所以这样会用到dev的环境。

四、概括

Profile中常用的几个参数如下所示:

参数

功能

说明

spring.profiles.default

指定默认的Profile

当不指定Profile时,默认生效的Profile

spring.profiles.active

激活指定的Profile

可以被优先级高的配置源替换

spring.profiles.include

激活指定要包含的Profile

不会被其他配置源替换

spring.profiles.group

指定Profile分组

激活一个分组,就会激活组下所有Profile

注意,Profile有一些使用上的限制,不能随意搭配使用,以上几个参数不能用于多文档配置中和指定Profile配置文件。


标签:Profile,INFO,26,SpringBoot,23,认识,08,2023,main
From: https://blog.51cto.com/u_13312531/7255175

相关文章

  • SpringBoot启动时:Process finished with exit code 0解决办法
    Processfinishedwithexitcode0并不是报错了,这个表示程序正常执行完毕退出了。这就表示项目启动成功后了,此时运行,最后运行完毕自动退出。但我们是需要访问路径的,所以需要引入webjar包<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot......
  • Springboot和SpringMVC
    SpringBoot是一个用于创建独立的、基于Spring框架的Java应用程序的开源框架。它简化了以往需要在Spring应用中进行繁琐配置的过程,提供了开箱即用的配置和约定,使得开发者能够更集中精力于业务逻辑的实现。SpringBoot提供了许多优秀的特性,其中包括:1.自动配置(Auto-config......
  • Springboot是什么
    SpringBoot是一个用于简化Spring应用程序开发的框架。它是基于Spring框架的一种约定优于配置的方式,旨在帮助开发者更快速、更容易地构建独立的、生产级的Spring应用程序。SpringBoot提供了一套默认配置,用于自动配置各种常见的第三方库和框架,减少了开发者的配置工作。同......
  • 认识vi (Ubuntu)
    一:概述  学习linux就必须知道vi,这是所有Linux发行版本都会有的一个文本编译器,可以用来创建和编辑文件。vi也是Linux系统中最常用的工具之一,它还有一个升级版的vim,与vi相比,vim新增了很多的功能。二:vi的基本用法 如果用习惯了Windows系统下的MicrosoftWord,初学vi对于初学者来说......
  • hibernate——初步认识
    开始学习hibernate了,跟着网上的教学视频边看边学。现在有些迷茫,不知道学这些东西,以后能不能用得上,也不知道未来会发展成什么样子,也不知道我的基础算是打好了没有,总觉得学这些框架,有点浮沙筑高台的感觉,心里很不踏实。知道的都是些表面的东西,框架底层是什么样的,看看那些源代码,想看懂......
  • SpringBoot - 事务处理
    事务介绍是一组操作的集合,它是一个不可分割的工作单位,这些操作要么同时成功,要么同时失败Spring事务管理:注解:@Transactional位置:业务层的方法上、类上、接口上作用:将当前方法交给spring进行事务管理,方法执行前,开始事务。成功执行完毕,提交事务,出现异常,回滚事务引入案......
  • 基于Springboot的宜居酒店管理系统的设计与实现-计算机毕业设计源码+LW文档
    摘要信息化的迅速发展,对人们的衣食住行产生了很大影响。越来越多的人习惯并依赖于通过信息技术和智能化的形式来处理日常各类事物。为了满足管理者管理酒店的需要,以及适应现代化酒店管理的需求,决定开发宜居酒店管理系统。帮助管理员快速的在线管理,提高了效率。本系统是选择面向......
  • 1.1 七个习惯成就高效能认识-积极主动的习惯
    一、积极主动的习惯1.绩效绩效=效率->效果->效能思维、行为与结果的关系2.七大习惯的大循环3.个人成功的小循环3.1积极主动人类的本质是主动非被动的,人类不仅能针对特定环境选择回应方式,更能主动创造有利的环境。采取主动不等于胆大妄为,而是让人们充分认识到自......
  • 基于springboot的图书馆管理系统
    随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。本文介绍了疫情下图书馆管理系统的开发全过程。通过分析疫情下图书馆管理系统管理的不足,创建了一个计算机管理疫情下图书馆管理系统的方案。文章介绍了疫情下图书馆管理系统的系统分析部分,包括可......
  • 基于springboot编程训练系统设计与实现
    随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。本文介绍了编程训练系统的开发全过程。通过分析编程训练系统管理的不足,创建了一个计算机管理编程训练系统的方案。文章介绍了编程训练系统的系统分析部分,包括可行性分析等,系统设计部分主要介绍了......