多环境配置
使用多环境配置的原因:
在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/db1user: devpassword: 123#application-test.yml配置文件
db:url: sqlserver://192.168.1.30:8002/db3user: testpassword: 123456#application-prod.yml配置文件
db:url: oracle://192.168.1.20:9000/db2user: prodpassword: 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
所有步骤完成后重新启动一次项目,以后当程序代码有修改就会触发热部署,无需手动启动程序就会有效果