SpringBoot多环境配置以及热部署

8 篇文章 0 订阅
3 篇文章 0 订阅

多环境配置

使用多环境配置的原因:

在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

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

  • 27
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值