ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Spring Boot基础学习笔记05

2021-06-22 10:58:03  阅读:109  来源: 互联网

标签:配置文件 05 Spring 配置 jar application yaml Boot 环境


一、项目进行多环境配置的必要性

. 在实际开发中,应用程序通常需要部署到不同的运行环境中,例如开发环境、测试环境、生产环境等。不同的环境可能需要不同的环境配置,针对这种情况,不可能手动变更配置文件来适应不同的开发环境,通常需要对项目进行多环境配置,Spring Boot框架提供了两种多环境配置的方式,分别是Profile文件多环境配置和@Profile注解多环境配置。同时,会额外讲解在Spring Boot配置文件中设置属性时,除了可以像前面示例中显示的配置属性值外,还可以使用随机值和参数间引用对属性值进行设置。

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

(一)创建Spring Boot Web项目ProfileDemo01
项目初始化过程可以参看上一讲ConfigDemo01的创建过程
在这里插入图片描述

.在第03讲里,我们学习两种格式的全局配置文件:application.properties和application.yaml,本次案例,我们准备采用yaml格式的配置文件。

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

配置文件命名格式:application-xxx.yaml
此例仅演示端口号与虚拟路径的配置,实际应用中可以配置许多内容
1、将application.properties更名为application.yaml
在这里插入图片描述

2、模拟开发环境,创建配置文件application-dev.yaml

在这里插入图片描述

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

4、模拟生产环境,创建配置文件application-pro.yaml

(三)创建控制器
在net.hw.lesson05里创建controller子包,在子包里创建ProfileController
在这里插入图片描述


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

/**
 * 功能:项目资料控制器
 * 作者:华卫
 * 日期:2021年05月08日
 */
@RestController
public class ProfileController {
    @GetMapping("/hello")
    public String hello() {
        return "Welcome to Spring Boot World~";
    }
}

(四)指定使用环境

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

(1) 在全局配置文件里指定当前使用环境 - 开发环境
在这里插入图片描述

spring: profiles: active: dev,表明当前生效的环境配置文件是application-dev.yaml

启动项目,查看采用的使用环境:服务器端口号与虚拟路径

在这里插入图片描述

访问http://localhost:8081/lzy/hello
在这里插入图片描述

(2) 在全局配置文件里指定当前使用环境 - 测试环境

在这里插入图片描述

spring: profiles: active: test,表明当前生效的环境配置文件是application-test.yaml

启动项目,查看采用的使用环境:服务器端口号与虚拟路径

在这里插入图片描述

访问http://localhost:8081/lzy/hello
在这里插入图片描述

访问http://localhost:8082/ied/hello
在这里插入图片描述

(3) 在全局配置文件里指定当前使用环境 - 生产环境

在这里插入图片描述

spring: profiles: active: pro,表明当前生效的环境配置文件是application-pro.yaml

启动项目,查看采用的使用环境:服务器端口号与虚拟路径
在这里插入图片描述

访问http://localhost:8082/ied/hello

在这里插入图片描述

访问http://localhost:8083/china/hello
在这里插入图片描述

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

(1)使用IDEA将Maven项目打成jar包
Maven - ProfileDemo01 - LifeCycle - package,单击右键,在快捷菜单里执行“Run Maven Build”

在这里插入图片描述

在target目录里查看生成的项目jar包profiledemo01-0.0.1-SNAPSHOT.jar

(2)在终端执行jar包,选择使用环境 - 开发环境
D:\IdeaProjects\ProfileDemo01>cd target
D:\IdeaProjects\ProfileDemo01\target>java -jar profiledemo01-0.0.1-SNAPSHOT.jar --spring.profiles.active=dev
在这里插入图片描述

访问http://localhost:8081/lzy/hello

按Ctrl + C组合键,停止项目的运行

(3)在终端执行jar包,选择使用环境 - 测试环境

D:\IdeaProjects\ProfileDemo01\target>java -jar profiledemo01-0.0.1-SNAPSHOT.jar --spring.profiles.active=test
在这里插入图片描述

访问http://localhost:8082/ied/hello
在这里插入图片描述

按Ctrl + C组合键,停止项目的运行

(4)在终端执行jar包,选择使用环境 - 生产环境

D:\IdeaProjects\ProfileDemo01\target>java -jar profiledemo01-0.0.1-SNAPSHOT.jar --spring.profiles.active=pro
在这里插入图片描述

访问http://localhost:8083/china/hello
在这里插入图片描述

按Ctrl + C组合键,停止项目的运行

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

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

将项目进行热部署

在这里插入图片描述

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

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

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

package net.hw.lesson05.config;

/**
 * 功能:数据库配置接口
 * 作者:华卫
 * 日期:2021年05月08日
 */
public interface DatabaseConfig {
    void connector();
}

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

在全局配置文件application.properties里配置使用环境

(五)打开测试类,编写测试方法
点开测试类ProfileDemo02ApplicationTests

注入数据配置实体
调用数据库配置实体的方法
package net.hw.lesson05;

import net.hw.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();
}

(六)运行测试方法,查看结果

运行测试方法contextLoads()

在这里插入图片描述

标签:配置文件,05,Spring,配置,jar,application,yaml,Boot,环境
来源: https://blog.csdn.net/Braveheart_/article/details/118101842

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有