1.配置文件占位符

RaandomValuePropertySourcr:配置文件可以使用随机数
      ${random.value}      ${random.int}  ${random.long}
      ${random.int(10)}    ${random.int[1024,65535]}
 
属性配置占位符
-可以在配置文件中引用前面配置过的属性(优先使用前面配置过的这里都能使用)
-${app.name:默认值} 来制定找不到属性时的默认值
可以用随机数
可以用占位符获取之前配置的值,没有可以指定默认值

application.properties

#person
person.name=无敌多么寂寞
person.age=${random.int}
person.bir=//
person.boss=true
person.map.q1=
person.map.q2=
person.lists=a,b,c
person.dog.name=${person.name}*cat
person.dog.age=
@Autowired
Person person;
@Test
public void contextLoads() {
System.out.println(person);
}

此时没有person.mr可以进行默认设置
#person
person.name=无敌多么寂寞
person.age=${random.int}
person.bir=//
person.boss=true
person.map.q1=
person.map.q2=
person.lists=a,b,c
person.dog.name=${person.mr:mr}*cat
person.dog.age=

2.Profile

是spring对不同环境提供的不同配置功能的支持,可以通过激活,
指定参数等方式快速切换环境
2.1多profile形式
---配置文件文件命可以是 application-{profile}.properties/yml

默认使用application.properties

2.2多profile文档切换模式

server:
port:
spring:
profiles:
active: dev
---
server:
port:
spring:
profiles:dev //指定属于那个文档库

 2.3激活方式

2.3.1 配置文件中使用spring.profiles.active=dev

2.3.2yml文档块
server:
port:
spring:
profiles:
active: dev
---
server:
port:
spring:
profiles:dev //指定属于那个文档库

2.3.3指定激活的命令行

 3.配置文件的加载位置

springboot 启动会扫描以下位置的application.properties或者application.yml文件作为Spring boot的默认配置文件
–file: ./config/ 项目目录下的config
–file: ./ 项目目录下
–classpath:/config/ resources目录下的config
–classpath:/ resources目录下
优先级由高到底,高优先级的配置会覆盖低优先级的配置;
SpringBoot会从这四个位置全部加载主配置文件;互补配置
我们还可以通过spring.config.location来改变默认的配置文件位置

通过spring.config.location来改变默认的配置文件位置:
引入外部的xxxx.properties文件

3springboot:springboot配置文件(配置文件占位符、Profile、配置文件的加载位置)的更多相关文章

  1. Spring中手动增加配置文件中占位符引用的变量

    在项目中遇到一个这样的需求,项目的配置文件由外部传入,这时spring配置文件那些占位符变量该如何取值呢? 解决这个问题的做法有几种,我想到的大概有以下三种: 1.通过系统属性来实现,把外部传入的配置 ...

  2. SpringBoot——配置文件加载位置及外部配置加载顺序

    声明 本文部分转自:SpringBoot配置文件加载位置与优先级 正文 1. 项目内部配置文件 spring boot 启动会扫描以下位置的application.properties或者applic ...

  3. SpringBoot系列之配置文件加载位置

    SpringBoot系列之配置文件加载位置 SpringBoot启动会自动扫描如下位置的application.properties或者application.yml文件作为Springboot的默认 ...

  4. 配置文件加载位置与多profile文件

    一. 我们在编写配置文件时,文件名可以是: application-{profile}.properties 例如:我们有几个配置文件对应的是项目不同时期的配置文件 1.application-sit ...

  5. 【SpringBoot 基础系列】实现一个自定义配置加载器(应用篇)

    [SpringBoot 基础系列]实现一个自定义配置加载器(应用篇) Spring 中提供了@Value注解,用来绑定配置,可以实现从配置文件中,读取对应的配置并赋值给成员变量:某些时候,我们的配置可 ...

  6. SpringBoot开发 - 什么是热部署和热加载?devtool的原理是什么?

    在SpringBoot开发调试中,如果我每行代码的修改都需要重启启动再调试,可能比较费时间:SpringBoot团队针对此问题提供了spring-boot-devtools(简称devtools)插件 ...

  7. Spring import配置文件使用占位符

    import使用占位符 连接池切换导入配置的代码: <import resource="classpath:META-INF/spring/spring-${db.connection ...

  8. SpringBoot之配置文件加载位置

    1.SpringBoot启动会扫描application.properties或者application.yml文件作为springboot的配置文件.默认创建项目生成application.prop ...

  9. JAVAEE——SpringBoot配置篇:配置文件、YAML语法、文件值注入、加载位置与顺序、自动配置原理

    转载 https://www.cnblogs.com/xieyupeng/p/9664104.html @Value获取值和@ConfigurationProperties获取值比较   @Confi ...

随机推荐

  1. [转]Newtonsoft JSON how to dynamically change the date format?

    本文转自:http://www.howtobuildsoftware.com/index.php/how-do/cg8K/jsonnet-newtonsoft-json-how-to-dynamica ...

  2. 一:Maven知识整理

    一:maven的好处 1.依赖管理:对jar包的统一管理 可以节省空间 2.项目一键构建: 编码 编译 测试(junit) 运行 打包 部署 一个 tomcat:run就能把项目运行起来 Maven能 ...

  3. 三:SpringTransaction

    一:什么是事务: 事务逻辑上的一组操作,组成这组操作的各个逻辑单元,要么一起成功,要么一起失败. 二:事务特性(ACID): 原子性(Atomicity) :强调事务的不可分割. 一致性(Consis ...

  4. javaweb带属性的自定义标签

    带属性的自定义标签: 1.先在标签处理器中定义setter方法,建议把所有的属性类型都设置为String类型. package com.javaweb.tag; import java.io.IOEx ...

  5. Python基础-接口与归一化设计、抽象类、继承顺序、子类调用父类,多态与多态性

    一.接口与归一化设计 Java接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能). 由 ...

  6. Python基础-map/reduce/filter

    一.map Python内置函数,用法及说明如下: class map(object): """ map(func, *iterables) --> map obj ...

  7. C++类继承--构造函数时先构造基类

    以下说明继承类函数构造时,先构造基类: 析构基类时,若没加上virtual,只析构基类,不析构派生类: 析构派生类时,同时会析构基类: 1. 基类析构函数有virtual #include <s ...

  8. 提升PPT制作效率和颜值

    [大咖分享]By汤帅,PPT定制师 网站有时比素材库更有效 学会多模板整合利用 网站推荐:花瓣,officeplus,演界网,pptstore 演讲提纲 思维导图听课笔记

  9. switch case 忘记 break

    昨天纠结了很久的问题,一直找不到原因,早上发现是一个低级错误: private void selectButton(int id) { switch (id) { case 0: recommend_ ...

  10. MySQL5.7的组提交与并行复制

    从MySQL5.5版本以后,开始引入并行复制的机制,是MySQL的一个非常重要的特性. MySQL5.6开始支持以schema为维度的并行复制,即如果binlog row event操作的是不同的sc ...