小工具      在线工具  汉语词典  dos游戏  css  js  c++  java

spring boot启动环境的配置与更改(dev,local,pro)包含单元测试环境

# Spring Boot,spring boot,单元测试,spring 额外说明

收录于:15天前

文件类型介绍

  • 特性

该文件是一种key-value的格式,配置文件的特点是,它的Key-Value一般都是String-String类型的,因此我们完全可以用Map<String, String>来表示它。

用Properties读取配置文件非常简单。Java默认配置文件以.properties为扩展名,每行以key=value表示,以#课开头的是注释。

spring.profiles.active=dev
server.port = 8080
  • yaml

YAML是以数据为中心的文本,使用空格、缩进、换行来组织数据,使内容更加简洁易读,有利于运维人员后期维护。有点类似于json格式。

server:
  prot: 8080

与property相比,更加简洁,减少冗余。

yaml以缩进来控制层级关系,只要是左边对齐的一列数据都是同一个层级的。属性和值的大小写都十分敏感的。值之前必须有一个空格。"":双引号;不会转义字符串里面的特殊字符;'':单引号;会转义特殊字符。

优势
在这里插入图片描述

spring boot配置文件

通常情况下,Spring Boot 在启动时会将 resources 目录下的 application.properties apllication.yml 作为其默认配置文件,我们可以在该配置文件中对项目进行配置,但这并不意味着 Spring Boot 项目中只能存在一个 application.properties 或 application.yml。

application.properties 的优先级高于 application.yml。一个项目中只使用一种格式的配置文件,方便统一管理和维护。

spring boot项目启动时默认加载优先级:

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

yaml配置文件的内容填充到IOC容器中:

spring boot项目在启动时都会读取并记载配置文件,通过@ConfigurationProperties注解可以将配置文件的所有内容加载到IOC容器并装配, @Value将相关属性一一对应自动装配。

person:
  name: mike
  age: 21
  sex:
@Component  //注册bean
@ConfigurationProperties(prefix = "person")
public class Person {
    
    private String name;
    private int age;
    private String sex;
    private Date date;
    private Dog dog;
    private List<Object> list;
    private Map<String,Object> map;
    
    //setter and getter 
    }

@Component //注册bean
@PropertySource(value = "classpath:user.properties")
public class User {
    
    //直接使用@value
    @Value("${user.name}") //从配置文件中取值
    private String name;
    @Value("#{user.age}")  // #{SPEL} Spring表达式
    private int age;
    @Value("user.sex")  // 
    private String sex;
}

@PropertySource用于加载指定文件,非application前缀命名的都要使用该注解。该注解解决了一些配置分文件管理,不必都写了主配置文件中,减少冗余。

在这里插入图片描述

还有一个注解是@ImportResource自定义的xml配置文件,默认情况下这个bean是不会加载到Spring容器中来的。需要@ImportResource注解将这个配置文件加载进来。

在这里插入图片描述

多profile文件多启动环境

在开发,运行和测试的阶段,不同环境需要不同的配置如dev,pro,local环境

在这里插入图片描述

这样启动时只需要激活相应的环境即可。

在这里插入图片描述

spring.profiles.active=dev激活配置文件。

除了配置文件之外,还可以在idea中更改:

在这里插入图片描述

也可以在pom文件中设置

在这里插入图片描述

yaml配置文件激活

在这里插入图片描述

两种配置方式对比:

(1)属性配置多个环境,需要添加多个配置文件。 YAML 仅需要一个附件文件。

(2)书写格式的差异,yaml相对简洁优雅

(3)YAML的缺点:无法通过@PropertySource注解加载。如果需要使用@PropertySource注释来加载值,则使用属性文件。

您也可以使用 dos 命令更改它:

java -jar myapp.jar --spring.profiles.active=dev

主要激活方式

在这里插入图片描述

-Dspring.profiles.active=dev

单元测试启动环境配置

在spring boot的单元测试中,如果想要启动其他环境,需要使用idea工具。

在这里插入图片描述

如果直接点击Run xxx则启动的时配置文件配置了激活的环境,如spring.profiles.active=dev

在这里插入图片描述

如果需要更换环境,就要点击最后一个Modify Run Configuration..

在这里插入图片描述
在图中红线所指的属性添加spring.profiles.active=dev即可只能用key-value格式。

这样会在启动时启动相应的环境:

在这里插入图片描述

. . .

相关推荐

额外说明

如何在网页上一键切换繁体字和简体字?

网页如何实现一键切换繁体字或简体字呢? JS文件代码来源于:https://github.com/hustlzp/jquery-s2t 具体实现效果可以到:易微帮-专业编程知识分享平台 查看 目录 1、新建JS文件:jquery.s2t.js 2、新建H

额外说明

Oracle Database 23c 新特性:布尔数据类型

Oracle database 23c 引入了新的 SQL 布尔(Boolean)数据类型,可以像其他内置类型一样使用。实际上,PL/SQL 则在很多年前已经提供了布尔数据类型的支持。 布尔字段 布尔数据类型使用关键字 BOOLEAN 或者 BOOL 指

额外说明

VS远程调控:Win验证调控方式

背景: 目标机的Spec比较低,所以打算开远程调试,这样调试好开发完可以直接在目标机上使用。 发现VS远程调控的网上帖子清一色都是无验证身份的添加进程方法。不喜欢,不妥协,自己研究了一下,获得使用Win验证远调的配置方法。 基本思路 只设置远调,不设置远

额外说明

C++智能指针——enable_shared_from_this

内部保存着一个弱指针 class Ftest :public enable_shared_from_this<Ftest> { public: }; int main() { Ftest* test = new Ftest(); sha

额外说明

【Unity3D数据集合】(三)字典Dictionary和哈希表Hashtable学习

推荐阅读 CSDN主页 GitHub开源地址 Unity3D插件分享 简书地址 我的个人博客 QQ群:1040082875 大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧,觉得有用记得一键三连哦。 一、前言 在日常开发中,常常会用到

额外说明

Python编程基础16:类和对象

文章目录 零、本讲学习目标 一、面向对象 (一)程序员“面向对象” (二)两种编程思想实现五子棋 (三)面向过程 vs. 面向对象 (三)面向对象三大特点 1、封装(encapsulation) 2、继承(inheritance) 3、多态(polymo

额外说明

Go语言中的并发编程

Go语言中的并发编程 并发 goroutine实现,类似线程,++属于用户态的线程++,可以并发工作 goroutine是由Go语言的运行时(runtime)调度完成 线程是由操作系统调度完成。 Go语言还提供channel在多个goroutine间进行

额外说明

在Vue中如何修改element UI组件的样式(deep 深度选择器)

        在项目当中我们常常会使用到 Element UI 组件库来进行快速开发,但是组件在引入之后它都会有官方默认的样式,有些情况我们需要修改它的样式。 方法一(不推荐):使用class         为要修改的这个组件标签设置一个 class

额外说明

计算机丢失d3dcompiler_37.dll怎么解决?

其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题,如果是新手第一时间会认为是软件或游戏出错了,其实并不是这样,其主要原因就是你电脑系统的该dll文件丢失了或者损坏了,这时你只需下载这个d3dcompiler_37.dll文件进行安装(前提是找到适

ads via 小工具