热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

java架构基础:SpringCloudYAML、Properties配置详解

目录SpringCloudYAML配置详解1Properties详解2自定义参数2参数引用3随机数4外部参入4多环境配置5YAML6YAML有以下基本规则:6使用YAML完成多环境

目录

Spring Cloud YAML 配置详解1

Properties详解2

自定义参数2

参数引用3

随机数4

外部参入4

多环境配置5

YAML6

YAML有以下基本规则:6

使用YAML完成多环境配置7

在之前的实例中,我们使用了src/main/resources/application.properties对我们的项目做了个性化的配置,这种配置方式简单明了,也是我们经常使用的

但是应对复杂的商业需求下,多环境和编程化的配置无法得以满足

为此Spring Cloud为我们提供了YAML的配置方式丰富我们的功能和简化我们的开发同时也能简单明了的分辨配置内容。

Properties详解

自定义参数

自定义参数可以让我们在配置文件中定义一些参数以供在程序中使用

在这里我们使用Spring注解的方式实现这个功能

首先创建一个实体类

@Component

public class Dalao {

@Value("${dalao.name}")

private String name;

@Value("${dalao.yanzhi}")

private String yanzhi;

…..getter setter省略

@Component 注解:

把普通pojo实例化到spring容器中,相当于配置文件中的

修改application.propertie增加以下配置参数

dalao.name=mashibing

dalao.yanzhi=100

使用自定义参数

Spring 管理对象

让Spring 注入对象,这里需要注意的是如果自己new的对象是没有被Spring容器管理的,所以不会自动注入属性值给我们

@Autowired

private Dalao dalao;

测试打印

System.out.println(ToStringBuilder.reflectionToString(dalao));

System.out.println(ToStringBuilder.reflectionToString(new Dalao()));

ToStringBuilder

这里用到了ToStringBuilder完成对象转字符串,要使用这个对象的话需要引入Spring的工具包commons-lang3

Pom

org.apache.commons

commons-lang3

3.7

参数引用

在application.propertie中的各个参数值是可以相互引用的

我们修改一下之前的配置

dalao.na

本文来源gaodai.ma#com搞##代!^码网(

me=mashibing

dalao.yanzhi=100

dalao.desc=${dalao.name}is a good teacher,bing bu shi yin wei ${dalao.name} de yan zhi = ${dalao.yanzhi}

实体中添加

@Value("${dalao.desc}")

private String desc;

输出结果

随机数

有些特殊需求,我们不希望设置的属性值是一个固定值,比如服务器随机端口号,某些编号等,我们可以使用${radom}在配置中产生随机int,long或是string

${random.int()} = 随机int

${random.long} = 随机long

${random.int(50)} = 50以内的随机数

${random.int(50,100)} = 50~100之间的int随机数

${random.value}= 随机字符串

配置文件中使用

dalao.xiaodi.zhangyang.yanzhi=${random.int(50,100)}

dalao.xiaodi.zhangyang.xinqing=${random.value}

外部参入

在微服务架构中经常会使用自动运维部署工具,使用这些工具来启动我们的服务

我们的Spring boot程序通常是使用java –jar的方式来启动运行的

对于服务端口号或是一些其他需要在启动服务的时候才能决定的值,如果在配置中写死或是用随机明显是满足不了需求的



推荐阅读
  • Maven + Spring + MyBatis + MySQL 环境搭建与实例解析
    本文详细介绍如何使用MySQL数据库进行环境搭建,包括创建数据库表并插入示例数据。随后,逐步指导如何配置Maven项目,整合Spring框架与MyBatis,实现高效的数据访问。 ... [详细]
  • 本文总结了一次针对大厂Java研发岗位的面试经历,探讨了面试中常见的问题及其背后的原因,并分享了一些实用的面试准备资料。 ... [详细]
  • 本文详细介绍如何在华为鲲鹏平台上构建和使用适配ARM架构的Redis Docker镜像,解决常见错误并提供优化建议。 ... [详细]
  • 协程作为一种并发设计模式,能有效简化Android平台上的异步代码处理。自Kotlin 1.3版本引入协程以来,这一特性基于其他语言的成熟理念,为开发者提供了新的工具,以增强应用的响应性和效率。 ... [详细]
  • Android目录遍历工具 | AppCrawler自动化测试进阶(第二部分):个性化配置详解
    终于迎来了“足不出户也能为社会贡献力量”的时刻,但有追求的测试工程师绝不会让自己的生活变得乏味。与其在家消磨时光,不如利用这段时间深入研究和提升自己的技术能力,特别是对AppCrawler自动化测试工具的个性化配置进行详细探索。这不仅能够提高测试效率,还能为项目带来更多的价值。 ... [详细]
  • 本文深入探讨了 Spring Cloud 微服务架构中 Gateway 组件的应用,详细介绍了其在实现高效请求路由与过滤方面的关键作用。文章首先从基本配置入手,逐步讲解了如何通过静态路由和动态路由实现灵活的服务访问控制。此外,还特别介绍了如何配置 Gateway 以自动从 Nacos 服务注册中心拉取服务列表,进一步提升系统的可维护性和扩展性。 ... [详细]
  • 本文深入探讨了ASP.NET Web API与RESTful架构的设计与实现。ASP.NET Web API 是一个强大的框架,能够简化HTTP服务的开发,使其能够广泛支持各种客户端设备。通过详细分析其核心原理和最佳实践,本文为开发者提供了构建高效、可扩展且易于维护的Web服务的指导。此外,还讨论了如何利用RESTful原则优化API设计,确保系统的灵活性和互操作性。 ... [详细]
  • 在1995年,Simon Plouffe 发现了一种特殊的求和方法来表示某些常数。两年后,Bailey 和 Borwein 在他们的论文中发表了这一发现,这种方法被命名为 Bailey-Borwein-Plouffe (BBP) 公式。该问题要求计算圆周率 π 的第 n 个十六进制数字。 ... [详细]
  • 二维码的实现与应用
    本文介绍了二维码的基本概念、分类及其优缺点,并详细描述了如何使用Java编程语言结合第三方库(如ZXing和qrcode.jar)来实现二维码的生成与解析。 ... [详细]
  • 当需要确保对象的状态在创建后不可更改时,使用记录(Record)类型是一个理想的选择。本文探讨了如何通过记录类型实现对象的不可变性,并提供了一个简单的示例来说明其用法。 ... [详细]
  • 本文详细介绍了JQuery Mobile框架中特有的事件和方法,帮助开发者更好地理解和应用这些特性,提升移动Web开发的效率。 ... [详细]
  • 本文详细介绍了如何使用Heartbeat构建一个高可用性的Apache集群,包括安装、配置和测试步骤。 ... [详细]
  • 在Spring Boot项目中,通过YAML配置文件为静态变量设置值的方法与实践涉及以下几个步骤:首先,创建一个新的配置类。需要注意的是,自动生成的setter方法默认是非静态的,因此需要手动将其修改为静态方法,以确保静态变量能够正确初始化。此外,建议使用`@Value`注解或`@ConfigurationProperties`注解来注入配置属性,以提高代码的可读性和维护性。 ... [详细]
  • 在SpringBoot多模块Maven项目中,经常会遇到一个启动模块无法访问其他模块中的静态资源的问题。本文首先详细描述了该问题的具体表现,然后从配置文件入手,探讨了可能的原因,并提出了一种通过调整`application.yaml`配置来解决这一问题的有效方法。此外,还介绍了如何通过优化项目结构和使用Spring Boot的静态资源路径映射功能,进一步提高资源引用的灵活性和可靠性。 ... [详细]
  • 本文深入探讨了Spring Cloud Eureka在企业级应用中的高级使用场景及优化策略。首先,介绍了Eureka的安全配置,确保服务注册与发现过程的安全性。接着,分析了Eureka的健康检查机制,提高系统的稳定性和可靠性。随后,详细讨论了Eureka的各项参数调优技巧,以提升性能和响应速度。最后,阐述了如何实现Eureka的高可用性部署,保障服务的连续性和可用性。通过这些内容,开发者可以更好地理解和运用Eureka,提升微服务架构的整体效能。 ... [详细]
author-avatar
U友50082089
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有