首页 > 其他分享 >springboot 如何指定 active 的 application yaml

springboot 如何指定 active 的 application yaml

时间:2024-07-04 23:11:01浏览次数:20  
标签:profile springboot yaml Spring Boot dev application active

在 Spring Boot 项目中,你可以通过多种方式指定要使用的 `application.yml` 文件中的 `active` 配置文件(profile)。指定 active profile 的方法主要包括以下几种:

### 1. 使用命令行参数

当你通过命令行启动 Spring Boot 应用程序时,可以使用 `--spring.profiles.active` 参数来指定 active profile。

```sh
java -jar your-application.jar --spring.profiles.active=dev
```

### 2. 使用环境变量

你也可以设置环境变量 `SPRING_PROFILES_ACTIVE` 来指定 active profile。这在部署到不同环境(如生产、开发、测试)时特别有用。

```sh
export SPRING_PROFILES_ACTIVE=dev
```

### 3. 在 `application.yml` 文件中指定

你可以在 `application.yml` 文件的顶层指定默认的 active profile。这个方法适用于在代码库中设定默认配置。

```yaml
spring:
profiles:
active: dev
```

### 4. 在 `application.properties` 文件中指定

如果你使用 `application.properties` 文件,也可以在其中指定 active profile。

```properties
spring.profiles.active=dev
```

### 5. 使用 Spring Boot Maven 插件

如果你通过 Maven 构建和运行 Spring Boot 应用程序,可以在 `pom.xml` 文件中使用 `spring-boot-maven-plugin` 插件配置 active profile。

```xml
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<profiles>
<profile>dev</profile>
</profiles>
</configuration>
</plugin>
</plugins>
</build>
```

### 6. 使用 IDE 配置

如果你使用 IDE(如 IntelliJ IDEA、Eclipse 等)进行开发,可以在运行配置中指定 active profile。

#### IntelliJ IDEA:

1. 打开 Run/Debug Configurations。
2. 选择你的 Spring Boot 应用配置。
3. 在 `VM options` 中添加 `-Dspring.profiles.active=dev`。

#### Eclipse:

1. 打开 Run Configurations。
2. 选择你的 Spring Boot 应用配置。
3. 在 `Arguments` 选项卡的 `VM arguments` 中添加 `-Dspring.profiles.active=dev`。

### 7. 使用 Java 代码配置

在 Spring Boot 应用的主类(即带有 `@SpringBootApplication` 注解的类)中,也可以通过编程的方式设置 active profile。

```java
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.core.env.AbstractEnvironment;

@SpringBootApplication
public class MySpringBootApplication {
public static void main(String[] args) {
System.setProperty(AbstractEnvironment.ACTIVE_PROFILES_PROPERTY_NAME, "dev");
SpringApplication.run(MySpringBootApplication.class, args);
}
}
```

### 示例配置文件结构

假设有两个配置文件 `application-dev.yml` 和 `application-prod.yml`,它们的内容如下:

#### application-dev.yml

```yaml
spring:
datasource:
url: jdbc:h2:mem:devdb
username: sa
password: password
jpa:
hibernate:
ddl-auto: update
server:
port: 8081
```

#### application-prod.yml

```yaml
spring:
datasource:
url: jdbc:mysql://prod-db-url:3306/proddb
username: produser
password: prodpassword
jpa:
hibernate:
ddl-auto: validate
server:
port: 8080
```

 

通过以上方法,你可以根据不同的运行环境和需求,灵活地指定和切换 Spring Boot 应用的 active profile,从而实现多环境配置管理。这种灵活性使得 Spring Boot 在开发、测试和部署阶段能够更好地适应不同的环境需求。

标签:profile,springboot,yaml,Spring,Boot,dev,application,active
From: https://www.cnblogs.com/gongchengship/p/18284838

相关文章

  • springboot 中推荐使用哪些比较好的 web 客户端 SDK
    在SpringBoot中,有几种常用和推荐的Web客户端SDK,可以用于与RESTful或其他类型的Web服务进行交互。1.SpringWebClientSpringWebClient是Spring5中引入的非阻塞、响应式的Web客户端,推荐用于现代SpringBoot应用。特点响应式编程:支持响应式编程模型,适用于需......
  • springboot+vue+mybatis前台点菜系统+PPT+论文+讲解+售后
    21世纪的今天,随着社会的不断发展与进步,人们对于信息科学化的认识,已由低层次向高层次发展,由原来的感性认识向理性认识提高,管理工作的重要性已逐渐被人们所认识,科学化的管理,使信息存储达到准确、快速、完善,并能提高工作管理效率,促进其发展。论文主要是对前台点菜系统进行了介绍,......
  • springboot+vue+mybatis企业保修系统+PPT+论文+讲解+售后
    企业管理系统提供给用户一个企业信息管理的系统,最新的企业信息让用户及时了解企业管理动向,,还能通过交流区互动更方便。本系统采用了B/S体系的结构,使用了java技术以及MYSQL作为后台数据库进行开发。系统主要分为系统管理员、员工和主管三个部分,系统管理员主要功能包括主页、个......
  • springboot 如何使用MongoDB集成 shedlock-spring
    ShedLock是一个用于防止在分布式环境中任务重复执行的库。它允许多个节点共享一个任务调度器,并确保同一时间只有一个节点能够执行某个任务。SpringBoot项目中可以通过集成shedlock-spring来实现这一功能。下面是一个完整的集成指南:1.添加依赖首先,需要在pom.xml中添加sh......
  • springboot 中每分钟执行一次的 cron 表达式怎么写
    在SpringBoot中,如果你需要使用Cron表达式来每分钟执行一次任务,可以使用Spring的@Scheduled注解。Cron表达式是一种用来表示时间点的字符串,通过这些字符串,你可以非常灵活地定义任务的执行时间。Cron表达式格式Cron表达式由六个或七个字段组成,按以下顺序排列:秒(Seconds):0-59分......
  • 基于SpringBoot的财务管理系统
    系统主要包括首页,个人中心,员工管理,部门管理,员工工资管理,工资调整管理,资产类别管理,固定资产管理,经营信息管理,序时账管理,年度利润管理,系统管理等功能模块。......
  • web.py框架下的application.py模块 —— Python
    本文主要分析的是web.py库的application.py这个模块中的代码。总的来说,这个模块主要实现了WSGI兼容的接口,以便应用程序能够被WSGI应用服务器调用。WSGI是WebServerGatewayInterface的缩写,具体细节可以查看WSGI的WIKI页面接口的使用使用web.py自带的HTTPServer下面这个例......
  • 如何在SpringBoot项目中使用Activiti工作流(整套代码)
      前言activiti工作流引擎项目,企业erp、oa、hr、crm等企事业办公系统轻松落地,一套完整并且实际运用在多套项目中的案例,满足日常业务流程审批需求。一、项目形式springboot+vue+activiti集成了activiti在线编辑器,流行的前后端分离部署开发模式,快速开发平台,可插拔工作流服务......
  • Winform中使用HttpClient实现调用http的post接口并设置传参content-type为application
    场景Winform中怎样使用HttpClient调用http的get和post接口并将接口返回json数据解析为实体类:https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/124157296上面使用HttpClient调用post接口时使用的HttpContent的格式为application/x-www-form-urlencoded对应的代码......
  • 没有使用Redis相关的代码或依赖,但在 `application.yaml` 配置文件中配置了Redis参数,项
    个人名片......