springboot多环境配置方案(不用5分钟)

下面是详细讲解“springboot多环境配置方案(不用5分钟)”的完整攻略:

1. 原理

Spring Boot 支持通过不同的配置文件来管理不同的环境。它提供了一个标准的命名规则:application-{profile}.properties/yml,比如 application-dev.ymlapplication-test.ymlapplication-prod.yml 等。其中 profile 就是环境名称。

Spring Boot 会通过开启不同的 profile 来加载不同的配置文件。可以通过下面两种方式来配置:

  1. 在 application.properties/yml 中设置 spring.profiles.active 属性。比如 spring.profiles.active=dev
  2. 通过启动命令行参数来设置。比如 java -jar myproject.jar --spring.profiles.active=dev

2. 实现步骤

这里以一个 Spring Boot 项目为例子,通过 application.properties/yml 和命令行参数方式来演示如何配置多环境。

2.1 创建配置文件

在 src/main/resources 目录下创建以下配置文件:

application.properties:

spring.datasource.url=jdbc:mysql://localhost:3306/prod
spring.datasource.username=root
spring.datasource.password=root

server.port=8080

application-dev.properties:

spring.datasource.url=jdbc:mysql://localhost:3306/dev

application-test.properties:

spring.datasource.url=jdbc:mysql://localhost:3306/test

2.2 配置 Maven

在 pom.xml 文件中添加以下插件:

<!-- 设置默认 Spring Boot profile -->
<profiles>
   <profile>
      <id>dev</id>
      <activation>
         <activeByDefault>true</activeByDefault>
      </activation>
   </profile>
</profiles>

<!-- 配置 Maven 打包时指定 profile -->
<build>
   <plugins>
      <plugin>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-maven-plugin</artifactId>
         <configuration>
            <profiles>
               <profile>dev</profile>
            </profiles>
         </configuration>
      </plugin>
   </plugins>
</build>

2.3 修改代码

修改代码,使用 @Value 注解来获取配置文件中的参数。

@SpringBootApplication
public class Application {

@Value("${spring.datasource.url}")
private String datasourceUrl;

@Value("${server.port}")
private int port;

public static void main(String[] args) {
    SpringApplication.run(Application.class, args);
}

@RequestMapping("/")
String home() {
    return "datasource url: " + datasourceUrl + ", port: " + port;
}

}

2.4 打包并运行

通过 Maven 打包:

mvn package -Dspring.profiles.active=dev

运行:

java -jar target/myproject.jar --spring.profiles.active=dev

通过 curl 访问 http://localhost:8080/,输出:

datasource url: jdbc:mysql://localhost:3306/dev, port: 8080

这样就成功配置了 dev 环境的参数。

3. 示例

下面是两条示例:

示例1:多个 profile 方式

创建以下三个配置文件:

application-dev.properties:

spring.datasource.url=jdbc:mysql://localhost:3306/dev

application-test.properties:

spring.datasource.url=jdbc:mysql://localhost:3306/test

application-prod.properties:

spring.datasource.url=jdbc:mysql://localhost:3306/prod

在代码中通过 @Value 注解来获取配置文件中的参数:

@SpringBootApplication
public class Application {

@Value("${spring.datasource.url}")
private String datasourceUrl;

public static void main(String[] args) {
    SpringApplication.run(Application.class, args);
}

@RequestMapping("/")
String home() {
    return "datasource url: " + datasourceUrl;
}

}

通过下面命令分别启动不同的 profile:

java -jar myproject.jar --spring.profiles.active=dev
java -jar myproject.jar --spring.profiles.active=test
java -jar myproject.jar --spring.profiles.active=prod

这样就可以在不同的 profile 中使用不同的配置文件了。

示例2:命令行参数方式

只需要在启动的时候加上参数即可:

java -jar myproject.jar --spring.profiles.active=dev

这样就会加载 application-dev.properties 中的配置文件了。

4. 结论

通过 Spring Boot 多环境配置方案,可以方便的管理不同环境下的配置文件。只需要通过不同的 profile 来加载不同的配置文件即可。可以通过设置命令行参数或者配置文件来指定 profile,或者选择默认的 profile。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:springboot多环境配置方案(不用5分钟) - Python技术站

(0)
上一篇 2023年5月15日
下一篇 2023年5月15日

相关文章

  • java中复杂查询sql语句该怎么写

    讲解如下。 如何在Java中编写复杂查询SQL语句 在Java中编写复杂查询SQL语句通常有两种方式,分别是使用字符串拼接和使用JPA Criteria Query API。下面将对这两种方法进行详细介绍。 字符串拼接 使用字符串拼接方式,我们可以直接写出SQL语句并将其作为一个字符串传递给JDBC,然后通过执行该语句返回结果集。这种方式的优点是简单易懂,可…

    Java 2023年5月20日
    00
  • Java agent 使用实例详解

    Java agent 使用实例详解 Java agent 是 Java 虚拟机提供的一种高级功能,是实现 JVM 监控和动态修改字节码的重要手段。在本文中,我们将详细讲解 Java agent 的使用方法,帮助读者能够更好的理解和应用该技术。 什么是 Java agent Java agent 实际上就是一个 Java 程序,在 JVM 启动时通过启动参数指…

    Java 2023年5月26日
    00
  • JAVA文件扫描(递归)的实例代码

    下面是详细的讲解 “JAVA文件扫描(递归)的实例代码” 的攻略。 目标 我们的目标是编写一个可以在指定目录下递归查找文件和文件夹的 Java 代码。我们将使用 File 类和递归的方法来实现这一目标。 实现过程 步骤一:创建一个 Java 类 首先,我们需要创建一个 Java 类来编写代码。您可以选择使用您最喜欢的 Java IDE 编辑器,或者在命令行中…

    Java 2023年5月20日
    00
  • Java面试题冲刺第十八天–Spring框架3

    Java面试题冲刺第十八天–Spring框架3 简介 本文是Java面试题冲刺系列的第十八篇,主要介绍Spring框架的知识点,包括Spring框架的特点、Spring框架中常用组件、Spring的优点等。 Spring框架的特点 Spring框架是一个轻量级的开源JavaEE框架,由于其具有以下特点而备受开发者欢迎: 依赖注入(DI)和控制反转(IoC)…

    Java 2023年5月19日
    00
  • Springboot启动原理和自动配置原理

    放本地文件夹都快吃土了,准备清理文件夹,关于Springboot的! 启动原理 @SpringBootApplication public class Start { public static void main(String[] args) { SpringApplication.run(Start.class, args); } } SpringApp…

    Java 2023年4月25日
    00
  • Spring Data JPA实现审计功能过程详解

    Spring Data JPA实现审计功能过程详解 Spring Data JPA是Spring Data家族中的一员,是对JPA的封装和增强,大大简化了开发中JPA的使用。其中,Spring Data JPA提供了审计功能,帮助我们记录实体对象的新增、修改、删除操作的时间和操作人。本文就来详细讲解Spring Data JPA如何实现审计功能。 什么是审计…

    Java 2023年6月2日
    00
  • SpringMVC实现Controller的三种方式总结

    以下是关于“SpringMVC实现Controller的三种方式总结”的完整攻略,其中包含两个示例。 SpringMVC实现Controller的三种方式总结 SpringMVC是一个基于Java的Web框架,它可以帮助我们快速开发Web应用程序。Controller是SpringMVC中的一个组件,它用于处理HTTP请求。本文将介绍SpringMVC实现C…

    Java 2023年5月17日
    00
  • springboot maven 打包插件介绍及注意事项说明

    SpringBoot Maven 打包插件介绍及注意事项说明 SpringBoot Maven 打包插件提供了许多效率工具和集成包,可以轻松地将 SpringBoot 应用程序打包部署。在本文中,我们将了解如何配置 SpringBoot Maven 打包插件、注意事项以及一些示例。 配置 在 pom.xml 文件中加入以下内容: xml <build&…

    Java 2023年5月19日
    00
合作推广
合作推广
分享本页
返回顶部