java4.5 掌握Spring Boot多环境配置

news2024/12/24 22:10:34

一、使用Profile文件进行多环境配置

(一)创建Spring Boot项目

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

(二)创建多环境配置文件

1、全局配置文件改名
在这里插入图片描述
2、模拟开发环境
在resources里创建配置文件 - application-dev.yaml
在这里插入图片描述
在这里插入图片描述
3、模拟测试环境
在resources里创建配置文件 - application-test.yaml
在这里插入图片描述
在这里插入图片描述

4、模拟生产环境
在resources里创建配置文件 - application-prod.yaml
在这里插入图片描述
在这里插入图片描述

(三)创建控制器

在net.cxf.boot包里创建controller子包,在子包里创建ProfileController类
在这里插入图片描述

package net.cxf.boot.controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
/**
 * 功能:概况控制器
 * 作者:cxf
 * 日期:2023年06月06日
 */
@RestController
public class ProfileController {
    @GetMapping("/welcome")
    public String welcome() {
        return "<h1 style='color: red; text-align: center'>欢迎访问Spring Boot世界~</h1>";
    }
}

(四)采用默认环境

默认采用配置文件application.yaml,启动服务器,访问http://localhost:8080/welcome
在这里插入图片描述

(五)指定使用环境

方式1、使用配置文件全局指定使用环境

(1) 在全局配置文件里指定当前使用环境 - 开发环境
在这里插入图片描述
在这里插入图片描述
首先,访问http://localhost:8080/welcome,报错,无法访问
在这里插入图片描述
访问http://localhost:8081/lzy01/welcome(采用了开发环境设置的端口号与虚拟路径)
在这里插入图片描述
(2) 在全局配置文件里指定当前使用环境 - 测试环境
在这里插入图片描述
在这里插入图片描述
访问http://localhost:8081/lzy01/welcome,报错,无法访问
在这里插入图片描述
访问http://localhost:8082/lzy02/welcome
在这里插入图片描述
(3) 在全局配置文件里指定当前使用环境 - 生产环境
在这里插入图片描述
在这里插入图片描述
访问http://localhost:8082/lzy02/welcome
在这里插入图片描述
访问http://localhost:8083/lzy03/welcome
在这里插入图片描述

方式2、通过命令行方式指定使用环境

(1)使用IDEA将Maven项目打成jar包
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
再次运行package命令,构建成功,生成了项目jar包 - profiledemo01-0.0.1-SNAPSHOT.jar
在这里插入图片描述
(2)在终端执行jar包,选择使用环境 - 开发环境
在这里插入图片描述
访问http://localhost:8081/lzy01/welcome
在这里插入图片描述
按Ctrl + C组合键,停止项目的运行
(3)在终端执行jar包,选择使用环境 - 测试环境
在这里插入图片描述
访问http://localhost:8082/lzy02/welcome
在这里插入图片描述
按Ctrl + C组合键,停止项目的运行
(4)在终端执行jar包,选择使用环境 - 生产环境
在这里插入图片描述
访问http://localhost:8083/lzy03/welcome
在这里插入图片描述
按Ctrl + C组合键,停止项目的运行

二、使用@Profile注解进行多环境配置

(一)创建Spring Boot项目

在这里插入图片描述
在这里插入图片描述

(二)创建数据库配置接口

在net.cxf.boot里创建config子包,在子包里创建DatabaseConfig接口
在这里插入图片描述

package net.cxf.boot.config;

/**
 * 功能:数据库配置接口
 * 作者:cxf
 * 日期:2023年06月06日
 */
public interface DatabaseConfig {
    void connect();
}

(三)创建三个数据库配置实现类

1、创建MySQL数据库配置实现类

在net.cxf.boot.config包里创建impl子包,在子包里创建MySQLConfig类
在这里插入图片描述

package net.cxf.boot.config.impl;
import net.cxf.boot.config.DatabaseConfig;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Profile;
/**
 * 功能:MySQL数据库配置类
 * 作者:cxf
 * 日期:2023年06月06日
 */

@Configuration // 标识为配置类
@Profile("mysql") // 指定使用环境名称
public class MySQLConfig implements DatabaseConfig {
    @Override
    public void connect() {
        System.out.println("项目使用MySQL数据库环境~");
    }
}


2、创建Oracle数据库配置实现类

在net.cxf.boot.config.impl包里创建OracleConfig类
在这里插入图片描述

package net.cxf.boot.config.impl;
import net.cxf.boot.config.DatabaseConfig;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Profile;
/**
 * 功能:Oracle数据库配置类
 * 作者:cxf
 * 日期:2023年06月06日
 */
@Configuration // 标识为配置类
@Profile("oracle") // 指定使用环境名称
public class OracleConfig implements DatabaseConfig {
    @Override
    public void connect() {
        System.out.println("项目使用Oracle数据库环境~");
    }
}

3、创建Sybase数据库配置实现类

在net.cxf.boot.config.impl包里创建SybaseConfig类
在这里插入图片描述

package net.cxf.boot.config.impl;
import net.cxf.boot.config.DatabaseConfig;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Profile;
/**
 * 功能:Sybase数据库配置类
 * 作者:cxf
 * 日期:2023年06月06日
 */
@Configuration // 标识为配置类
@Profile("sybase") // 指定使用环境名称
public class SybaseConfig implements DatabaseConfig {
    @Override
    public void connect() {
        System.out.println("项目使用Sybase数据库环境~");
    }
}

(四)在全局配置文件里设置使用环境

在这里插入图片描述

(五)编写测试方法

在这里插入图片描述

package net.cxf.boot;

import net.cxf.boot.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.connect();
    }
}

(六)运行测试方法

运行contextLoads()测试方法,查看结果
在这里插入图片描述

三、随机值设置以及参数间引用

(一)创建Spring Boot项目

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

(二)在全局配置文件里配置随机值

在这里插入图片描述

(三)测试配置的随机数

1、测试随机数lzy.number

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

@SpringBootTest
class RandomSetDemoApplicationTests {
    // 注入配置文件里的随机值
    @Value("${lzy.value}")
    private String value;

    @Test
    public void testRandomValue() {
        // 输出配置文件里的随机值
        System.out.println("随机值:" + value);
    }
}

在这里插入图片描述

2、测试随机整数lzy.integer
在这里插入图片描述

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

@SpringBootTest
class RandomSetDemoApplicationTests {
    // 注入配置文件里的随机值
    @Value("${lzy.value}")
    private String value;
    @Value("${lzy.integer}")
    private int integer;

    @Test
    public void testRandomValue() {
        // 输出配置文件里的随机值
        System.out.println("随机值:" + value);
    }
    @Test
    public void testRandomInteger() {
        //输出配置文件里的随机整数
        System.out.println("随机整数:" + integer);
    }

}

在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/615130.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

chatgpt赋能python:Python中的填充(Padding)

Python中的填充&#xff08;Padding&#xff09; 在Python编程中&#xff0c;填充&#xff08;Padding&#xff09;是一种常用的技术。填充通常用于将字符串、列表或其他类型的数据添加到另一个数据结构中&#xff0c;以达到特定的格式或长度。本文将介绍如何在Python中使用填…

leetcode652. 寻找重复的子树(java)

寻找重复的子树 leetcode652. 寻找重复的子树题目描述 解题思路代码演示二叉搜索树专题 leetcode652. 寻找重复的子树 来源&#xff1a;力扣&#xff08;LeetCode&#xff09; 链接&#xff1a;https://leetcode.cn/problems/find-duplicate-subtrees 题目描述 给你一棵二叉树的…

关于nginx使用中的bug

一&#xff1a; 报错&#xff1a;nginx: [emerg] WSASocketW() failed (10022: An invalid argumentwas supplied) 像使用WinSCP一样进行项目部署&#xff0c;把自己的电脑当做服务器放前端压缩包dist&#xff0c;让内网-局域网内所有人可访问前端页面 首先把nginx的文件夹放…

【5种灵活有效方式】如何从死机手机中恢复内部数据?

我的手机掉在地上&#xff0c;现在无法开机。我丢失了所有联系人、图片和重要文件。无奈之下&#xff0c;我需要恢复数据。但是如何从死机中恢复内部数据呢&#xff1f; 我们使用移动设备的最重要原因之一是打电话和发送消息。但有时&#xff0c;我们使用相同的设备来保存记忆…

【剑指offer专项突破版】数组篇——‘‘C‘‘

文章目录 前言一 . 排序数组中两个数字的和题目分析思路分析法①代码——双指针法②代码——二分查找 二. 数组中和为 0 的三个数题目分析问题转换代码 三. 和大于等于 target 的最短子数组题目分析思路分析代码 四. 乘积小于 K 的子数组题目分析思路分析代码 五. 和为 k 的子数…

如何用知识星球年入50万

使用知识星球年入50万的话&#xff0c;那么你的社群收费必须超过60万&#xff0c;因为星球会有20%的手续费。 年入50万并不是一笔小数目&#xff0c;那么一定少不了优质的内容以及引流渠道&#xff0c;这二者缺一不可。 优质的内容和引流的渠道都需要题主自己去把控&#xff…

阿里云OpenSearch重磅推出LLM问答式搜索产品,助力企业高效构建对话式搜索服务

阿里云OpenSearch重磅推出LLM智能问答版&#xff0c;面向行业搜索场景&#xff0c;提供企业专属问答搜索服务。 智能问答版基于内置的LLM大模型提供问答能力&#xff0c;一站式快速搭建问答搜索系统。 目前OpenSearch LLM智能问答版已开始邀测&#xff08;https://page.aliyu…

卡尔曼滤波与组合导航原理(六)信息Kalman滤波与信息融合

文章目录 一、信息滤波1、模型2、信息滤波公式改写3、IKF公式汇总4、KF与IKF的对偶关系 二、信息融合1、信息融合方法2、信息融合推导Kalman滤波 一、信息滤波 1、模型 函数模型 { X k Φ k / k − 1 X k − 1 Γ k − 1 W k − 1 Z k H k X k V k \left\{\begin{array}…

djangoo配置与运行

前言&#xff1a;相信看到这篇文章的小伙伴都或多或少有一些编程基础&#xff0c;懂得一些linux的基本命令了吧&#xff0c;本篇文章将带领大家服务器如何部署一个使用django框架开发的一个网站进行云服务器端的部署。 文章使用到的的工具 Python&#xff1a;一种编程语言&…

【UEFI】BIOS 阶段全局变量类型

BIOS的几个阶段需要不同阶段的数据传递&#xff0c;下面介绍4个全局变量。 1 固件存储介绍 本规范描述了应该如何在非易失性存储器中存储和访问文件。固件实现必须支持标准的PI固件卷和固件文件系统格式&#xff08;下文所述&#xff09;&#xff0c;但可能支持其他存储格式。…

【网页布局形式----浮动】

网页布局形式----浮动 css浮动&#xff1a;一、常见的三种网页布局形式&#xff1a;1.1 网页布局两大准则&#xff1a; 二 、浮动&#xff1a;2.1 浮动语法&#xff1a;2.2 浮动特性&#xff08;重难点&#xff09;&#xff1a;浮动元素通常与标准流的父级元素搭配使用&#xf…

Linux进程虚拟地址空间

文章目录 1. 进程地址空间1.1 存在1.2 初步了解1.2 虚拟地址空间的划分1.3 页表 2. 虚拟地址如何转化成物理地址2.1 二级页表2.2 总结 3. 写时拷贝3.1 原理3.2 解释为什么 pid_t ret fork() 中&#xff0c;ret 会有两个不同的值 4. 为何需要虚拟地址空间 1. 进程地址空间 1.1…

基于python的企业资产管理系统vue+django+flask

开发语言&#xff1a;Python 框架&#xff1a;django/flask Python版本&#xff1a;python3.7.7 数据库&#xff1a;mysql 数据库工具&#xff1a;Navicat 开发软件&#xff1a;PyCharm 文章介绍了企业资产管理系统的系统分析部分&#xff0c;包括可行性分析等&#xff0c;系…

基于SpringBoot的CRM客户管理销售团队管理系统(含源码+数据库)

1&#xff09;环境准备 JDK 1.8 以上 MySql 5.7 以上 Tomcat 7.0 以上 maven 3.5.0 Idea 2&#xff09;建立PowerTeam数据库 打开Mysql管理工具(推荐使用Navicat Premium) 执行db.sql脚本 可选操作执行demo_data.sql演示数据脚本 3)将项目导入Idea开发工具中 ​4&#xff09;修…

UE5使用Advanced-VR-Framework开发VR介绍

插件地址&#xff1a;https://www.unrealengine.com/marketplace/zh-CN/product/advanced-vr-framework 一、UE5开发VR的优势&#xff1a; UE5在三维的表现力上非常优秀&#xff1b;有基于Twinmotion等三维工具支持&#xff0c;制作流程上比较顺畅&#xff1b;UE5场景素材也非…

W13电力线载波通信技术

CK_Label_W13 CK_Label_W13&#xff08;外接供电版&#xff09; 产品型号 CK_Label_W13 尺寸 70*34.7*13.6mm 屏幕尺寸 2.1 inch 分辨率 250*122 像素密度 130dpi 显示技术 电子墨水屏显示 显示颜色 黑/白 外观颜色 白色 按键 1 指示灯 1 RGB灯 灯光颜…

Vue.js 中的混入是什么?如何使用混入?

Vue.js 中的混入是什么&#xff1f;如何使用混入&#xff1f; 在 Vue.js 中&#xff0c;混入&#xff08;Mixin&#xff09;是一种可复用的对象&#xff0c;可以包含任意组件选项。通过混入&#xff0c;我们可以将一些相同的代码逻辑抽离出来&#xff0c;使组件更加简洁和可维…

录音如何转换成mp3格式

录音怎如何转换成mp3格式&#xff1f;因为我们知道录音的格式有很多种&#xff0c;其中常见的有WAV格式&#xff08;Waveform Audio File Format&#xff09;&#xff1a;是一种无损音频文件格式&#xff0c;音质高保真&#xff0c;通常用于专业录音和音乐制作。WMA格式&#x…

qt三个窗口基本类

qt是一个gui框架&#xff0c;做图形用户界面的&#xff0c;本地可以跑&#xff0c;跟一些web框架那种做好点击网址跳转的不一样&#xff0c;python的web常用的flask和django&#xff0c;python也有gui框架比如pytqt和tkinter&#xff0c;这个专栏讲qt5&#xff0c;用c写gui qt…

WOWWEE ROVIO小车改造思路

23年5月接触到这个车&#xff0c;大约是07年的玩具&#xff0c;初看到外观&#xff0c;真的是惊艳&#xff0c;三爪着地&#xff0c;长长的脖子&#xff0c;有些科幻电影中外星生物的味道。这个ID设计&#xff0c;放到今天&#xff0c;也是能镇住国内一众玩具厂商的。惊讶之余&…