二、springboot配置文件

二、springboot配置文件,第1张

spring boot 应用以容器的方式运行在 k8s 集群上面是非常方便的,但是不同的环境需要不同的配置文件,我们可以使用外部的配置中心,比如 nacos 、 apollo 。 k8s 也提供了 configMap 用来将环境配置信息和容器镜像解耦,便于应用配置的修改。本文主要从以下几个方面介绍 spring boot 使用 k8s 的 configMap 作为外部配置的使用方法:

当应用程序启动时,Spring Boot 会自动从以下位置查找并加载 applicationproperties 和 applicationyaml 文件。

配置文件优先级从高到底的顺序如下:

高优先级配置会覆盖低优先级配置

如果我们运行时想指定运行哪个环境的配置文件,可以有三种方式:

ConfigMap 是一种 API 对象,用来将非机密性的数据保存到键值对中。使用时 pod 可以将其用作环境变量、命令行参数或者存储卷中的配置文件。

创建 configMap 的几种方式:

从前面的介绍我们可以知道,spring boot 加载配置文件的最高优先级是 项目根路径下的 /config 子目录 ,所以可以将 configMap 中的配置文件挂载到容器中的项目根路径下的 config 子目录中。

当卷中使用的 configMap 被更新时,所投射的键最终也会被更新。 kubelet 组件会在每次周期性同步时检查所挂载的 configMap 是否为最新。 不过,kubelet 使用的是其本地的高速缓存来获得 configMap 的当前值。 高速缓存的类型可以通过 KubeletConfiguration 结构 的 ConfigMapAndSecretChangeDetectionStrategy 字段来配置。

configMap 既可以通过 watch *** 作实现内容传播(默认形式),也可实现基于 TTL 的缓存,还可以直接经过所有请求重定向到 API 服务器。 因此,从 configMap 被更新的那一刻算起,到新的主键被投射到 Pod 中去,这一 时间跨度可能与 kubelet 的同步周期加上高速缓存的传播延迟相等。 这里的传播延迟取决于所选的高速缓存类型 (分别对应 watch *** 作的传播延迟、高速缓存的 TTL 时长或者 0)。

以环境变量方式使用的 configMap 数据不会被自动更新,更新这些数据需要重新启动 Pod。

参考文档:

k8s 官网

spring boot 官网

>

SpringBoot基于Spring,集成SpringBoot,不会对原有项目的SpringMvc,MyBatis等框架产生冲突。

Spring Boot 会选择最适合的 Spring 子项目和第三方开源库进行整合。大部分 Spring Boot 应用只需要非常少的配置就可以快速运行起来。

1很多配置需要重新去学习

2会引入很多关联的依赖,要注意版本冲突的问题,需要保证版本统一

运行SpringbootApplication类的main()方法即可,因为spring-boot-starter-web内置tomcat组件,所以不需要配置tomcat。

1打包成Jar,使用jar –jar xxxjar命令直接运行

2打包成war,部署在外置的tomcat容器中

startAppsh

Tomcat的配置放在applicationproperties或者applicationyml中,示例applicationyml中:

Spring Boot使用了一个全局的配置文件applicationproperties,放在src/main/resources目录下或者类路径的/config下。Sping Boot的全局配置文件的作用是对一些默认配置的配置值进行修改。

配置文件分为两种格式:yml格式、properties格式yml文件比properties文件更方便阅读和书写,推荐用yml格式;

区别:

Properties中springdatasourcedruidminIdle=5

等同于yml文件中

spring:

datasource:

druid:

minldle: 5

yml的格式要求:

1子属性前面要加两个空格

2冒号后面要有一个空格

3不要用TAB键进行缩进,否则解析yml文件时报错

默认情况下,applicationproperties和applicationyml文件可以放在以下四个位置:

1外置,在相对于应用程序运行目录的/congfig子目录里。

2外置,在应用程序运行的目录里

3内置,在config包内

4内置,在Classpath根目录

这个列表按照优先级排序,也就是说,src/main/resources/config下applicationproperties覆盖src/main/resources下applicationproperties中相同的属性。

目前开发环境可以选择第四种,把applicationproperties放在src\main\resources目录下。

测试环境和生产环境的配置和应用分离,通过

命令可以加载配置文件,多个配置文件用逗号分离,例如:

或者:

应用启用时默认会加载applicationproperties文件。

读取属性的方式:

属性加载在bean中

使用属性

以上就是关于二、springboot配置文件全部的内容,包括:二、springboot配置文件、springboot核心注解是什么、spring boot 使用 k8s 的 configMap 作为外部配置等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9529351.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存