2021-5-7:Spring Boot多环境配置

本文介绍了Spring Boot如何进行多环境配置,包括使用Profile文件配置不同环境(开发、测试、生产),通过设置`spring.profiles.active`指定环境,以及利用@Profile注解实现多数据库环境配置。详细讲解了配置文件的创建、环境的切换以及接口的访问。
摘要由CSDN通过智能技术生成

Spring Boot多环境配置

一、使用Profile文件进行多环境配置
(一)创建Spring Boot Web项目ProfileDemo01
项目初始化过程可以参看上一讲ConfigDemo01的创建过程
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(二)创建多环境配置文件
配置文件命名格式:application-xxx.properties
此例仅演示端口号的配置,实际应用中可以配置许多内容
1、模拟开发环境,创建配置文件application-dev.properties
在这里插入图片描述

#配置端口号
server.port=8081

2、模拟测试环境,创建配置文件application-test.properties
在这里插入图片描述

#配置服务器端口号
server.port=8082

3、模拟生产环境,创建配置文件application-pro.properties
在这里插入图片描述
(三)指定使用环境
方式1、使用配置文件全局指定使用环境
(1) 在全局配置文件里指定当前使用环境 - 开发环境

在这里插入图片描述
spring.profiles.active=dev,表明当前生效的环境配置文件是application-dev.properties

启动项目,查看采用的使用环境及服务器端口号
在这里插入图片描述
在全局配置文件里指定当前使用环境 - 测试环境
在这里插入图片描述
spring.profiles.active=test,表明当前生效的环境配置文件是application-test.properties

启动项目,查看采用的使用环境及服务器端口号
在这里插入图片描述
在全局配置文件里指定当前使用环境 - 生产环境
在这里插入图片描述
运行测试
在这里插入图片描述
方式2、通过命令行方式指定使用环境
(1)使用IDEA将Maven项目打成jar包
Maven - ProfileDemo01 - LifeCycle - package
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在终端执行jar包,选择使用环境 - 开发环境
在这里插入图片描述

D:\IdeaProjects\ProfileDemo01>cd target
D:\IdeaProjects\ProfileDemo01\target>java -jar profiledemo01-0.0.1-SNAPSHOT.jar --spring.profiles.active=dev

在这里插入图片描述
按Ctrl + C组合键,停止项目的运行
在这里插入图片描述
在终端执行jar包,选择使用环境 - 测试环境

D:\IdeaProjects\ProfileDemo01\target>java -jar profiledemo01-0.0.1-SNAPSHOT.jar --spring.profiles.active=test


在这里插入图片描述
在这里插入图片描述
在终端执行jar包,选择使用环境 - 生产环境
在这里插入图片描述
在这里插入图片描述
在net.lhf.lesson05.controller目录下新建ProfileController类
在这里插入图片描述
在这里插入图片描述

package net.lhf.lesson05.controller;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class ProfileController {
    @GetMapping("/hello")
    public String hello(){
        return "Welcome to Spring Boot World";
    }
}

运行项目,访问http://localhost:8081/lzy/hello
在这里插入图片描述
在这里插入图片描述
运行项目,访问http://localhost:8082/ied/hello

在这里插入图片描述
在这里插入图片描述
运行项目,访问http://localhost:8082/ied/hello

在这里插入图片描述
三、使用@Profile注解进行多环境配置
如果项目可能用到三种不同的数据库环境,比如MySQL、Oracle和Sybase,那么我们如何利用@Profile注解来实现多数据库环境配置呢?
(一)创建Spring Boot Web项目ProfileDemo02
项目初始化过程可以参看上一讲ConfigDemo01的创建过程

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
设置热部署
在这里插入图片描述
按组合键Ctrl + Shift + Alt + /打开Maintenance对话框
在这里插入图片描述
在这里插入图片描述
创建数据库配置接口DatabaseConfig
在net.lhf.lesson05里创建config子包,在子包里创建DatabaseConfig接口
在这里插入图片描述

package net.lhf.lesson05.config;

/**
 * 功能:数据库配置接口
 * 作者:李红芙
 * 日期:2021年5月8日
 */
public interface DatabaseConfig {
    void connector();
}

三)创建三个数据库配置实现类
1、创建数据库配置实现类MySQLConfig
在这里插入图片描述
在这里插入图片描述


package net.lhf.lesson05.config;

import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Profile;

/**
 * 功能:Oracle数据库配置类
 * 作者:李红芙
 * 日期:2021年05月8日
 */
@Configuration // 指定为配置类
@Profile("mysql") // 配置环境名称
public class MySQLConfig implements DatabaseConfig {
    @Override
    public void connector() {
        System.out.println("项目使用MySQL数据库环境~");
    }
}


2、创建数据库配置实现类OracleConfig
在这里插入图片描述

package net.lhf.lesson05.config;

import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Profile;

/**
 * 功能:Oracle数据库配置类
 * 作者:李红芙
 * 日期:2020年05月8日
 */
@Configuration // 指定为配置类
@Profile("oracle") // 配置环境名称
public class OracleConfig implements DatabaseConfig {
    @Override
    public void connector() {
        System.out.println("项目使用Oracle数据库环境~");
    }
}

3、创建数据库配置实现类SybaseConfig
在这里插入图片描述

package net.lhf.lesson05.config;

import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Profile;

/**
 * 功能:Sybase数据库配置类
 * 作者:李红芙
 * 日期:2021年05月08日
 */
@Configuration // 指定为配置类
@Profile("sybase") // 配置环境名称
public class SybaseConfig implements DatabaseConfig {
    @Override
    public void connector() {
        System.out.println("项目使用Sybase数据库环境~");
    }
}

(四)在全局配置文件里设置使用环境
在全局配置文件application.properties里配置使用环境
在这里插入图片描述

打开测试类,编写测试方法
点开测试类ProfileDemo02ApplicationTests
在这里插入图片描述

package net.lhf.lesson05;

import net.lhf.lesson05.config.DatabaseConfig;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

@SpringBootTest
class ProfileDemo02ApplicationTests {

    @Autowired //注入数据库配置实体
    private DatabaseConfig databaseConfig;

    @Test
    void contextLoads() {
        //调用数据库配置实体的方法
        databaseConfig.connector();
    }

}

运行测试方法
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在全局配置文件里配置随机值
在这里插入图片描述

#任意一个随机数
my.number=${random.value}
#一个随机整数
my.integer=${random.int}
#一个长整型的随机数
my.long=${random.long}
#获取一个随机的UUID值
my.uuid=${random.uuid}
#小于10的随机整数
my.number.less=${random.int(10)}
#随机产生102465535之间的数
my.number.range=${random.int[1024,65535]}


测试类里测试配置的随机数
点开测试类RandomSetDemoApplicationTests
在这里插入图片描述

package net.lhf.lesson05;

import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.beans.factory.annotation.Value;

@SpringBootTest
class RandomSetDemoApplicationTests {
    // 注入配置文件里的属性
    @Value("${my.number}")
    private String number;

    @Test
    void contextLoads() {
        // 输出配置文件里的属性
        System.out.println(number);
    }
}


反复运行测试方法contextLoads(),查看结果
在这里插入图片描述
2、测试随机整数my.integer
注入配置文件里的属性
输出配置文件里的属性
在这里插入图片描述

课堂练习
1、测试长整型随机数my.long
在这里插入图片描述
在这里插入图片描述
2、测试随机UUID值my.uuid
在这里插入图片描述

在这里插入图片描述
测试小于10的随机整数my.number.less
在这里插入图片描述
在这里插入图片描述
测试1024至65535之间的随机整数my.number.range
在这里插入图片描述
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值