SpringBoot多环境配置以及热部署

2024-01-09 09:34:25

多环境配置

使用多环境配置的原因:

在SpringBoot项目的生命周期中,存在不同的环境,例如开发时的环境,测试时的环境,交付使用后的生产环境,每种环境的配置可能不一样,这种情况下可以通过多环境配置实现不同环境的快速切换。

实现多环境配置的基本思路:

针对不同环境制定不同名称的配置文件,里面放置不同环境下所需的配置项,然后在主配置文件中选择其中一个配置文件作为当前使用的配置。

步骤:

1.创建SpringBoot项目,添加spring-boot-starter-web依赖

2.创建多个配置文件,每个配置文件的格式:application-{profile}.yml,其中{profile}是对应环境的标识

补充:常用的配置文件:

? ? ? ? ? ? ? ? 开发环境:application-dev.yml

? ? ? ? ? ? ? ? 测试环境:application-test.yml

? ? ? ? ? ? ? ? 生产环境:application-prod.yml

#application-dev.yml配置文件
db:
  url: mysql://192.168.1.10:3306/db1
  user: dev
  password: 123

#application-test.yml配置文件
db:
  url: sqlserver://192.168.1.30:8002/db3
  user: test
  password: 123456

#application-prod.yml配置文件
db:
  url: oracle://192.168.1.20:9000/db2
  user: prod
  password: 111

3.选择环境:将application.properties配置文件修改为application.yml,使用以下代码选择伤处的一个环境(active为profile所进行的命名)

spring:
    profiles:
        #active中的值为对应环境的标识
        active:dev

4.创建控制器TestController进行测试,测试不同环境时加载不同的数据库连接信息

package com.example.chap1.controller;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class TestController {
    @Value("${db.url}")
    private String url;
    @Value("${db.user}")
    private String userName1;
    @Value("${db.password}")
    private String password;
    //测试开发环境
    @GetMapping("/test")
    public String test(){
        String str="<h1>当前环境连接的数据库URL:"+url+"</h1>";
        str+="<h1>数据库用户:"+userName1+"</h1>";
        str+="<h1>数据库密码:"+password+"</h1>";
        return str;
    }
}

热部署

使用热部署的原因:

在项目开发过程中,如果代码修改了,需要进行重新启动项目后修改才可以生效,但使用热部署则无须重新是手动启动应用程序

实现热部署:

1.在IDEA中进行自动构建项目的配置,选择File->Settings->Build,Execution,Deployment->Complier,然后勾选右侧部分的Build project automatically

2.在pom.xml文件中添加devtools依赖

  <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <optional>true</optional>
        </dependency>

3.在application.yml文件中添加配置

spring:
    devtools:
        restarts:
            enabled:true

所有步骤完成后重新启动一次项目,以后当程序代码有修改就会触发热部署,无需手动启动程序就会有效果

文章来源:https://blog.csdn.net/m0_73956769/article/details/135449410
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。