1.springboot 读取配置文件yarn

1.1 准备配置文件yaml

在main目录下新建resources目录,并设置为Root Resources,新建文件application.yaml

server:ip: 10.1.0.6hostname: hadoop-bd1admin: zhangsan

yaml是替代传统的xx.properties文件,是一种方便的定义层次配置数据的格式

1.2 创建配置类,通过@Value来注入值

1.2.1 @Value(“xxx”)直接指定值

package com.mp.prj.domain;import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;@Component
public class Server01 {@Value("10.1.0.1")private String ip;@Value("hadoop-bd1")private String hostname;@Value("1")private int admin;public String getIp() {return ip;}public void setIp(String ip) {this.ip = ip;}public String getHostname() {return hostname;}public void setHostname(String hostname) {this.hostname = hostname;}public int getAdmin() {return admin;}public void setAdmin(int admin) {this.admin = admin;}@Overridepublic String toString() {return "Server01{" +"ip='" + ip + '\'' +", hostname='" + hostname + '\'' +", admin=" + admin +'}';}
}

使用@SpringBootTest 单元测试

package com.mp.test;import com.mp.prj.AppTest;
import com.mp.prj.domain.Server01;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;/*
* @SpringBootTest:用于springboot项目微服务单元测试,需要指定classes 启动类
@RunWith :需要指定
* */@RunWith(SpringRunner.class)
@SpringBootTest(classes = AppTest.class)
public class IocTest02 {@AutowiredServer01 server01;@Testpublic void test02(){System.out.println(server01);}
}

运行结果:

Server01{ip='10.1.0.1', hostname='hadoop-bd1', admin=1}

1.2.2 @value("#{1+2}") 通过SPel表达式

package com.mp.prj.domain;import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;@Component
public class Server02 {private String ip;private String hostname;@Value("#{1+0}")private int admin;public String getIp() {return ip;}public void setIp(String ip) {this.ip = ip;}public String getHostname() {return hostname;}public void setHostname(String hostname) {this.hostname = hostname;}public int getAdmin() {return admin;}public void setAdmin(int admin) {this.admin = admin;}@Overridepublic String toString() {return "Server01{" +"ip='" + ip + '\'' +", hostname='" + hostname + '\'' +", admin=" + admin +'}';}
}

同样单元测试,也是可以捕获到信息

1.2.3 @value("${xx.xxxx}") 从配置文件中读取

package com.mp.prj.domain;import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;/*
* 这里使用@Configuration 注解,作用于类上,表明这个类为一个配置类,其实里面也包含有@Component注解
* */
@Configuration
public class Server03 {@Value("${server.ip}")private String ip;@Value("${server.hostname}")private String hostname;@Value("${server.admin}")private int admin;public String getIp() {return ip;}public void setIp(String ip) {this.ip = ip;}public String getHostname() {return hostname;}public void setHostname(String hostname) {this.hostname = hostname;}public int getAdmin() {return admin;}public void setAdmin(int admin) {this.admin = admin;}@Overridepublic String toString() {return "Server01{" +"ip='" + ip + '\'' +", hostname='" + hostname + '\'' +", admin=" + admin +'}';}
}

测试运行结果:

Server01{ip='10.1.0.6', hostname='hadoop-bd1', admin=1}

1.2.4 针对1.2.3从配置文件中读取,简化版

(1)针对属性值很多的情况下,我们每一个属性都要去写@Value 配置,那岂不是很麻烦,所以我们这里可以指定配置前缀
(2)通过@ConfigurationProperties 我们取指定配置文件的前缀
(3)字段名默认和配置文件中处前缀后一致的情况下,是可以省略掉@Value注解的

package com.mp.prj.domain;import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;/*
* 这里使用@Configuration 注解,作用于类上,表明这个类为一个配置类,其实里面也包含有@Component注解
* */
@Configuration
@ConfigurationProperties(prefix = "server")  //指定配置文件的前缀
public class Server04 {private String ip;private String hostname;private int admin;public String getIp() {return ip;}public void setIp(String ip) {this.ip = ip;}public String getHostname() {return hostname;}public void setHostname(String hostname) {this.hostname = hostname;}public int getAdmin() {return admin;}public void setAdmin(int admin) {this.admin = admin;}@Overridepublic String toString() {return "Server01{" +"ip='" + ip + '\'' +", hostname='" + hostname + '\'' +", admin=" + admin +'}';}
}

同样,我们是可以得到结果的

2.多环境Yaml配置文件

(1)很多情况下,我们会将开发和生成环境等多种配置放在一个yaml配置文件中,要求支持多环境切换
(2)通过spring.profiles 来指定该文档应用于哪个环境
(3) 配置文件中使用— 分割配置文件

2.1 使用spring.profiles.active 环境属性来指定哪些配置文件处于活动状态

spring:profiles:active: pro
---
spring:profiles: dev
server:ip: 10.1.0.6hostname: hadoop-bd1admin: 1
---
spring:profiles: pro
server:ip: 192.168.1.128hostname: hadoop-bd100admin: 0

2.2 以编程方式启动配置文件

@SpringBootApplication
public class DemoApplication {public static void main(String[] args) {SpringApplication app = new SpringApplication(DemoApplication.class);//启动dev配置文件app.setAdditionalProfiles("dev");   // dev 或prodapp.run(args);}
}

spring boot 之配置文件yarm读取04相关推荐

  1. spring boot 外部配置文件1-spring.config.location与spring.config.additional-location的区别

    spring boot外部配置文件 基础环境 : 基础环境 版本 spring boot 2.7.0 JDK 8 测试代码: @SpringBootApplication public class D ...

  2. java配置文件放置到jar外_java相关:Spring Boot 把配置文件和日志文件放到jar外部...

    java相关:Spring Boot 把配置文件和日志文件放到jar外部 发布于 2020-3-6| 复制链接 如果不想使用默认的application.properties,而想将属性文件放到jar ...

  3. Spring Boot —— YAML配置文件

    引言 首先,YAML并不是仅仅可以使用在Java项目中,它是一种类似于json结构的标记语言,可以为所有的编程语言服务.它强调更直观的层级表示,比较适合描述配置文件中的层级关系. Spring Boo ...

  4. Spring Boot通过配置文件区分测试和生产环境

    Spring Boot通过配置文件区分测试和生产环境 方法一:我们定义三个配置文件,一个是开发,我们定位为:application-dev.yml,另一个是生产,我们定义为application-pr ...

  5. Spring Boot的配置文件加载优先级

    基于Spring Boot 2.x详细介绍了Spring Boot的配置文件的加载优先级. 文章目录 1 总体优先级 2 内部配置优先级 3 bootstrap和application的优先级 1 总 ...

  6. Spring Boot默认配置文件加载顺序(四)

    通常情况下,Spring Boot 在启动时会将 resources 目录下的 application.properties 或 apllication.yml 作为其默认配置文件,我们可以在该配置文 ...

  7. Spring Boot (4)---配置文件详解

    Spring2.0 Boot配置文件详解 配置文件说明 Spring Boot 配置文件允许为同一套应用,为不同的环境用不同的配置文件.比如开发环境.测试环境.生成环境.你可以用 properties ...

  8. Spring Boot 实现配置文件加解密原理

    Spring Boot 配置文件加解密原理就这么简单 背景 接上文<失踪人口回归,mybatis-plus 3.3.2 发布>[1] ,提供了一个非常实用的功能 「数据安全保护」 功能,不 ...

  9. 企业分布式微服务云SpringCloud SpringBoot mybatis (二)Spring Boot属性配置文件详解...

    相信很多人选择Spring Boot主要是考虑到它既能兼顾Spring的强大功能,还能实现快速开发的便捷.我们在Spring Boot使用过程中,最直观的感受就是没有了原来自己整合Spring应用时繁 ...

最新文章

  1. 数论(Lucas定理) HDOJ 4349 Xiao Ming's Hope
  2. linux mint 17.3 内核,LinuxMint 17.3 Cinnamon抢鲜评测
  3. PHP语法分析器:RE2C BISON 总结
  4. ubuntu系统安装的MySql数据库,远程不能访问的几种可能问题
  5. Linux里su报错bash不是目录,Linux基础:关于su 命令的的几个相关报错
  6. 计算机联锁软件毕设论文,铁路信号计算机联锁系统()毕设论文.doc
  7. 代码执行漏洞原理/防御
  8. 异步fifo_FIFO工作的原理
  9. 查询oracle 表记录数,Oracle 查询所有表的记录数
  10. 大选期间完成25亿推送:美国移动push平台Urban Airship架构解密
  11. 微信h5游戏如何在微信中做好域名防封 防屏蔽的 工作
  12. 开机动画适配方案_修改开机动画教程
  13. jw player 6 断点续播 seek()
  14. 国产BI报表工具中低调的优秀“模范生”——思迈特软件Smartbi
  15. Dynamic Knowledge Graph Completionwith Jointly Structural and Textual Dependency
  16. tv3描述文件代理服务器,超强悍技术贴!Apple TV3复活DNS的刷机全教程
  17. 栈的操作(入栈、出栈)之一:顺序栈
  18. 在Ubuntu下编译运行C语言程序
  19. oracle修改clob值,oracle 修改 clob字段,查询clob字段
  20. 仓库 “http://ppa.launchpad.net/chris-lea/node.js/ubuntu bionic Release”

热门文章

  1. uniapp返回上一页
  2. Overture如何设置四手联弹的乐谱
  3. 幕墙建筑材料英国UKCA认证—EN 1364-3
  4. 在线考试中有关保存试卷的问题
  5. 保险 - http://218.9.202.55:8083/siweb/comp/menu/heb_menu/index.jsp
  6. linux temp文件夹在哪_全方位剖析 Linux 操作系统,太全了
  7. 通俗易懂VS项目中的web config配置文件
  8. 数据库实训项目之图书借阅系统
  9. k8s 添加 node
  10. Failure to find was cached in the local repository