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生命周期也很少有人用

目录
相关文章
|
7月前
|
Java 关系型数据库 数据库连接
Spring Boot项目集成MyBatis Plus操作PostgreSQL全解析
集成 Spring Boot、PostgreSQL 和 MyBatis Plus 的步骤与 MyBatis 类似,只不过在 MyBatis Plus 中提供了更多的便利功能,如自动生成 SQL、分页查询、Wrapper 查询等。
757 3
|
7月前
|
前端开发 Java API
酒店管理系统基于 JavaFX Spring Boot 和 React 经典项目重构实操
本文介绍了基于现代技术栈的酒店管理系统开发方案,整合了JavaFX、Spring Boot和React三大技术框架。系统采用前后端分离架构,JavaFX构建桌面客户端,React开发Web管理界面,Spring Boot提供RESTful API后端服务。核心功能模块包括客房管理和客户预订流程,文中提供了JavaFX实现的客房管理界面代码示例和React开发的预订组件代码,展示了如何实现客房信息展示、添加修改操作以及在线预订功能。
476 1
|
7月前
|
Java 测试技术 Spring
简单学Spring Boot | 博客项目的测试
本内容介绍了基于Spring Boot的博客项目测试实践,重点在于通过测试驱动开发(TDD)优化服务层代码,提升代码质量和功能可靠性。案例详细展示了如何为PostService类编写测试用例、运行测试并根据反馈优化功能代码,包括两次优化过程。通过TDD流程,确保每项功能经过严格验证,增强代码可维护性与系统稳定性。
316 0
|
7月前
|
存储 Java 数据库连接
简单学Spring Boot | 博客项目的三层架构重构
本案例通过采用三层架构(数据访问层、业务逻辑层、表现层)重构项目,解决了集中式开发导致的代码臃肿问题。各层职责清晰,结合依赖注入实现解耦,提升了系统的可维护性、可测试性和可扩展性,为后续接入真实数据库奠定基础。
593 0
|
7月前
|
Java 应用服务中间件 Maven
第01课:Spring Boot开发环境搭建和项目启动
第01课:Spring Boot开发环境搭建和项目启动
1620 0
|
10月前
|
SQL 前端开发 Java
深入理解 Spring Boot 项目中的分页与排序功能
本文深入讲解了在Spring Boot项目中实现分页与排序功能的完整流程。通过实际案例,从Service层接口设计到Mapper层SQL动态生成,再到Controller层参数传递及前端页面交互,逐一剖析每个环节的核心逻辑与实现细节。重点包括分页计算、排序参数校验、动态SQL处理以及前后端联动,确保数据展示高效且安全。适合希望掌握分页排序实现原理的开发者参考学习。
677 4
|
4月前
|
人工智能 运维 监控
运维安全还能靠“人盯人”?别闹了,聊聊自动化处理的真功夫
运维安全还能靠“人盯人”?别闹了,聊聊自动化处理的真功夫
205 17
|
9月前
|
数据采集 机器学习/深度学习 人工智能
运维人的“福音”?AI 驱动的自动化网络监控到底香不香!
运维人的“福音”?AI 驱动的自动化网络监控到底香不香!
1088 0
|
6月前
|
人工智能 运维 安全
运维老哥的救星?AI 驱动的自动化配置管理新趋势
运维老哥的救星?AI 驱动的自动化配置管理新趋势
350 11

热门文章

最新文章