SpringBoot多环境配置以及热部署

多环境配置

使用多环境配置的原因:

在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="

当前环境连接的数据库URL:"+url+"

"; str+="

数据库用户:"+userName1+"

"; str+="

数据库密码:"+password+"

"; return str; } }

热部署

使用热部署的原因:

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

实现热部署:

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

SpringBoot多环境配置以及热部署_第1张图片

SpringBoot多环境配置以及热部署_第2张图片

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

  
            org.springframework.boot
            spring-boot-devtools
            true
        

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

spring:
    devtools:
        restarts:
            enabled:true

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

你可能感兴趣的:(springBoot3,java,IDEA,spring,boot,java,spring)