Spring运维之boot项目多环境(yaml 多文件 proerties)及分组管理与开发控制

简介: Spring运维之boot项目多环境(yaml 多文件 proerties)及分组管理与开发控制

多环境开发(yaml文件版)

我们在自己的开发中是自己环境

测试 生产的环境都不同

多环境分为 两个步骤

设置环境

生产环境 开发环境 测试环境

手搓三个环境

设置应用环境

应用pro配置

# 应用环境
spring:
  profiles:
    active: pro
---
# 设置环境
# 生产环境
spring:
  profiles: pro
server:
  port: 80
 
---
# 开发环境
spring:
  profiles: dev
server:
  port: 81
 
---
# 测试环境
spring:
  profiles: test
server:
  port: 82

改成替用键

注意要用 --- 分隔开环境

# 应用环境
spring:
  profiles:
    active: pro
 
---
# 设置环境
# 生产环境
server:
  port: 80
spring:
  config:
    activate:
      on-profile:
---
# 开发环境
server:
  port: 81
spring:
  config:
    activate:
      on-profile:
---
# 测试环境
server:
  port: 82
spring:
  config:
    activate:
      on-profile: 

小结

多环境开发(多文件版)

这边写了的是三个配置文件

每个配置文件里面都有端口

在主配置里面写的使用的哪个配置

这样我们拿到项目经理给的配置文件

我们只需要修改主启动配置文件就行了

多环境开发(properties版)

早期boot推荐的制作方式

主配置文件

配置信息

所以只是书写格式不同而已

多环境分组管理

我们根据功能对配置文件中的信息进行拆分 并且制作成了独立的配置文件

是用include实行在激活指定环境的情况下 同时对多个环境进行加载使其生效

多个环境间使用逗号分隔

我们首先写主配置文件

把多个配置环境都加载进来

我们启动 要把要启动的信息包含进去

注意后加载的配置覆盖先加载的覆盖

但是主启动里面的配置

是最后加载的

所以所有的配置主要还是按照主启动里面的配置为准

这样就能避免出现这样的问题

但是这种格式并不适用于我们现在的开发

属性太繁琐

我们现在都在用group属性(spring 2.4出现的)

设置了若干环境组

spring:
  profiles:
    active: dev
    group:
      "dev": devDB,devMVC
      "pro": proDB,proMVC

小结

多环境开发过程中使用group属性设置配置文件分组

便于线上维护和管理

多环境开发控制

究竟是springboot依赖maven运行

还是maven依赖springboot运行呢

springboot运行时依赖maven里面的坐标配置

没有maven环境springboot都无法去运行

那么maven得首先开发

以maven的配置为主

我们可以在maven的配置文件里面去配置多环境

开发环境叫dev

生产环境叫pro

标记的是yml里面的变量

<!--    配置多环境-->
    <profiles>
 
        <profile>
            <id>env_dev</id>
            <properties>
                <profile.active>dev</profile.active>
            </properties>
<!--            设置默认启动-->
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
        </profile>
 
        <profile>
            <id>env_pro</id>
            <properties>
                <profile.active>pro</profile.active>
            </properties>
        </profile>
 
    </profiles>

直接在yml文件里面去读

spring:
  profiles:
    active: @profile.active@
    group:
      "dev": devDB,devMVC
      "pro": proDB,proMVC

之后直接打包

package

沿用了maven的设置

这样我们就能实现maven配置

当我们移动这个标签后打包后

配置就是pro 沿用了maven的配置 完成了统一

小结

在maven我们做的这些坐标不是我们拿来用的

而是给boot用的

boot赋值直接拿来用的

通过@符号直接引用这个变量

这里有一个小bug

我们启动springboot

是dev

修改后重启

还是dev

这是idea的一个bug

我们在实际生产过程中会遇到这种问题

这是因为idea缓存的问题 clean都没有用

我们要compile 手工编译 重新加载pom.XML里面的属性

这样就会解决这些bug

小结

我们以后用Linux通过git打包就不会出现这个bug

这就是一个idea的bug

而且maven的compile生命周期也很少有人用

目录
相关文章
|
Java API 数据库
JPA简介:Spring Boot环境下的实践指南
上述内容仅是JPA在Spring Boot环境下使用的冰山一角,实际的实践中你会发现更深更广的应用。总而言之,只要掌握了JPA的规则,你就可以借助Spring Boot无比丰富的功能,娴熟地驾驶这台高性能的跑车,在属于你的程序世界里驰骋。
561 15
|
XML Java 应用服务中间件
Spring Boot 两种部署到服务器的方式
本文介绍了Spring Boot项目的两种部署方式:jar包和war包。Jar包方式使用内置Tomcat,只需配置JDK 1.8及以上环境,通过`nohup java -jar`命令后台运行,并开放服务器端口即可访问。War包则需将项目打包后放入外部Tomcat的webapps目录,修改启动类继承`SpringBootServletInitializer`并调整pom.xml中的打包类型为war,最后启动Tomcat访问应用。两者各有优劣,jar包更简单便捷,而war包适合传统部署场景。需要注意的是,war包部署时,内置Tomcat的端口配置不会生效。
3308 17
Spring Boot 两种部署到服务器的方式
|
Java 数据库 微服务
微服务——SpringBoot使用归纳——Spring Boot中的项目属性配置——指定项目配置文件
在实际项目中,开发环境和生产环境的配置往往不同。为简化配置切换,可通过创建 `application-dev.yml` 和 `application-pro.yml` 分别管理开发与生产环境配置,如设置不同端口(8001/8002)。在 `application.yml` 中使用 `spring.profiles.active` 指定加载的配置文件,实现环境快速切换。本节还介绍了通过配置类读取参数的方法,适用于微服务场景,提升代码可维护性。课程源码可从 [Gitee](https://gitee.com/eson15/springboot_study) 下载。
817 0
|
存储 运维 安全
Spring运维之boot项目多环境(yaml 多文件 proerties)及分组管理与开发控制
通过以上措施,可以保证Spring Boot项目的配置管理在专业水准上,并且易于维护和管理,符合搜索引擎收录标准。
1366 2
|
Java
Spring读取Yaml
To use `Maven: org.springframework:spring-beans:4.3.2.RELEASE2` ```java public class YamlUtils { private static final Logger logger = LogManager.getLogger(YamlUtils.class); public stat
11143 0
|
11月前
|
Java 测试技术 数据安全/隐私保护
通过yaml文件配置自动化测试程序
通过yaml文件可以将自动化测试环境,测试数据和测试行为分开,请看一下案例
433 4
|
JSON Kubernetes API
深入理解Kubernetes配置:编写高效的YAML文件
深入理解Kubernetes配置:编写高效的YAML文件
|
存储 运维 Serverless
函数计算产品使用问题之在YAML文件中配置了环境变量,但在PHP代码中无法读取到这些环境变量,是什么原因
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
430 1
|
Kubernetes 应用服务中间件 nginx
k8s学习--YAML资源清单文件托管服务nginx
k8s学习--YAML资源清单文件托管服务nginx
611 2
k8s学习--YAML资源清单文件托管服务nginx