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

目录
相关文章
|
3天前
|
供应链 Java 开发者
Spring 框架:Java 界的‘万能钥匙’,你的企业应用开发新宠!
【6月更文挑战第25天】# Spring框架:Java开发的基石!它提供一站式解决方案,涵盖依赖注入、AOP、事务管理等,简化复杂应用开发。通过注解如`@Service`、`@Autowired`实现代码解耦,`@Transactional`自动化事务处理,加上AOP实现全局日志记录,让维护变得简单。Spring,企业级开发的首选!
|
3天前
|
机器学习/深度学习 人工智能 运维
智能化运维:AI在IT基础设施管理中的应用
【6月更文挑战第24天】本文将深入探讨人工智能(AI)如何革新传统IT运维模式,提升效率与响应速度。通过分析AI技术在故障预测、自动化处理和安全防护等方面的应用实例,揭示其对现代IT基础设施管理的深远影响。文章旨在为读者提供一个关于AI赋能运维领域的全面视角,同时指出实施过程中可能遇到的挑战与对策。
26 5
|
1天前
|
IDE Java 开发工具
Spring Boot:加速Java后端开发的现代化利器
在当今快速迭代的软件开发环境中,Spring Boot 已成为Java后端开发领域的首选框架。作为Spring家族的一员,它以“约定优于配置”的设计理念,极大地简化了传统Spring应用的配置和部署过程,让开发者能够更加专注于业务逻辑的实现。本文将探讨Spring Boot的核心优势,并通过一个简单的示例展示如何快速启动一个基于Spring Boot的Java Web应用。
13 1
|
3天前
|
Java 开发者 Spring
从入门到精通,Spring 框架带你玩转 Java 企业应用开发!
【6月更文挑战第25天】Spring框架简化了Java企业开发,通过依赖注入降低耦合,如使用构造函数注入`UserService`中的`UserDao`。它还提供声明式事务管理,如`@Transactional`注解自动处理事务,减少手动错误。此外,Spring的AOP支持允许在不侵入业务逻辑的情况下实现横切关注点,如`LoggingAspect`所示。无论是新手还是资深开发者,Spring以其全面的功能和灵活性成为企业应用开发的强大工具。
|
3天前
|
前端开发 Java 开发者
Spring 框架:Java 企业应用开发领域的“隐形冠军”!
【6月更文挑战第25天】Spring框架在Java开发中扮演重要角色,提倡依赖注入、事务管理及面向切面编程的最佳实践。例如,通过`@Autowired`实现接口注入,保持代码松耦合;使用`@Transactional`确保数据一致性;借助`@Aspect`定义AOP切面,分离关注点;使用Java配置增强可维护性;以及在Spring MVC中利用注解驱动提升Web应用效率。遵循这些最佳实践,开发者能打造高效、可扩展的应用。
|
4天前
|
运维 Java 测试技术
Spring运维之boo项目表现层测试加载测试的专用配置属性以及在JUnit中启动web服务器发送虚拟请求
Spring运维之boo项目表现层测试加载测试的专用配置属性以及在JUnit中启动web服务器发送虚拟请求
11 3
|
4天前
|
运维 Java 关系型数据库
Spring运维之boot项目bean属性的绑定读取与校验
Spring运维之boot项目bean属性的绑定读取与校验
13 2
|
4天前
|
缓存 NoSQL Java
后端开发中缓存的作用以及基于Spring框架演示实现缓存
后端开发中缓存的作用以及基于Spring框架演示实现缓存
11 1
|
1天前
|
Java 机器人 程序员
Spring Boot中的事件驱动开发
Spring Boot中的事件驱动开发
|
1天前
|
存储 Java 机器人
Spring Boot中的应用配置文件管理
Spring Boot中的应用配置文件管理