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

目录
相关文章
|
8天前
|
Cloud Native Java 对象存储
面向未来的架构设计:Spring Cloud和Netflix OSS在云原生环境下的发展趋势
展望未来,随着5G、边缘计算等新技术的兴起,微服务架构的设计理念将会更加深入人心,Spring Cloud和Netflix OSS也将继续引领技术潮流,为企业带来更为高效、灵活且强大的解决方案。无论是对于初创公司还是大型企业而言,掌握这些前沿技术都将是在激烈市场竞争中脱颖而出的关键所在。
22 0
|
9天前
|
人工智能 开发框架 Java
重磅发布!AI 驱动的 Java 开发框架:Spring AI Alibaba
随着生成式 AI 的快速发展,基于 AI 开发框架构建 AI 应用的诉求迅速增长,涌现出了包括 LangChain、LlamaIndex 等开发框架,但大部分框架只提供了 Python 语言的实现。但这些开发框架对于国内习惯了 Spring 开发范式的 Java 开发者而言,并非十分友好和丝滑。因此,我们基于 Spring AI 发布并快速演进 Spring AI Alibaba,通过提供一种方便的 API 抽象,帮助 Java 开发者简化 AI 应用的开发。同时,提供了完整的开源配套,包括可观测、网关、消息队列、配置中心等。
527 6
|
20天前
|
Java 数据库连接 数据格式
【Java笔记+踩坑】Spring基础2——IOC,DI注解开发、整合Mybatis,Junit
IOC/DI配置管理DruidDataSource和properties、核心容器的创建、获取bean的方式、spring注解开发、注解开发管理第三方bean、Spring整合Mybatis和Junit
【Java笔记+踩坑】Spring基础2——IOC,DI注解开发、整合Mybatis,Junit
|
20天前
|
Java 数据库连接 Maven
Spring基础1——Spring(配置开发版),IOC和DI
spring介绍、入门案例、控制反转IOC、IOC容器、Bean、依赖注入DI
Spring基础1——Spring(配置开发版),IOC和DI
|
2月前
|
人工智能 自然语言处理 Java
Spring AI,Spring团队开发的新组件,Java工程师快来一起体验吧
文章介绍了Spring AI,这是Spring团队开发的新组件,旨在为Java开发者提供易于集成的人工智能API,包括机器学习、自然语言处理和图像识别等功能,并通过实际代码示例展示了如何快速集成和使用这些AI技术。
Spring AI,Spring团队开发的新组件,Java工程师快来一起体验吧
|
27天前
|
缓存 Java 应用服务中间件
随着微服务架构的兴起,Spring Boot凭借其快速开发和易部署的特点,成为构建RESTful API的首选框架
【9月更文挑战第6天】随着微服务架构的兴起,Spring Boot凭借其快速开发和易部署的特点,成为构建RESTful API的首选框架。Nginx作为高性能的HTTP反向代理服务器,常用于前端负载均衡,提升应用的可用性和响应速度。本文详细介绍如何通过合理配置实现Spring Boot与Nginx的高效协同工作,包括负载均衡策略、静态资源缓存、数据压缩传输及Spring Boot内部优化(如线程池配置、缓存策略等)。通过这些方法,开发者可以显著提升系统的整体性能,打造高性能、高可用的Web应用。
58 2
|
29天前
|
NoSQL 前端开发 Java
使用 Spring Boot + Neo4j 实现知识图谱功能开发
在数据驱动的时代,知识图谱作为一种强大的信息组织方式,正逐渐在各个领域展现出其独特的价值。本文将围绕使用Spring Boot结合Neo4j图数据库来实现知识图谱功能开发的技术细节进行分享,帮助读者理解并掌握这一技术栈在实际项目中的应用。
100 4
|
1月前
|
安全 Java 开发者
强大!Spring Cloud Gateway新特性及高级开发技巧
在微服务架构日益盛行的今天,网关作为微服务架构中的关键组件,承担着路由、安全、监控、限流等多重职责。Spring Cloud Gateway作为新一代的微服务网关,凭借其基于Spring Framework 5、Project Reactor和Spring Boot 2.0的强大技术栈,正逐步成为业界的主流选择。本文将深入探讨Spring Cloud Gateway的新特性及高级开发技巧,助力开发者更好地掌握这一强大的网关工具。
109 6
|
1月前
|
IDE Java 开发工具
还在为繁琐的配置头疼吗?一文教你如何用 Spring Boot 快速启动,让开发效率飙升,从此告别加班——打造你的首个轻量级应用!
【9月更文挑战第2天】Spring Boot 是一款基于 Spring 框架的简化开发工具包,采用“约定优于配置”的原则,帮助开发者快速创建独立的生产级应用程序。本文将指导您完成首个 Spring Boot 项目的搭建过程,包括环境配置、项目初始化、添加依赖、编写控制器及运行应用。首先需确保 JDK 版本不低于 8,并安装支持 Spring Boot 的现代 IDE,如 IntelliJ IDEA 或 Eclipse。
83 5
|
2月前
|
运维 Devops 持续交付
自动化运维之路:从脚本到DevOps探索后端开发:从基础到高级实践
【8月更文挑战第28天】在数字化时代的浪潮中,企业对于IT运维的要求越来越高。从最初的手动执行脚本,到如今的自动化运维和DevOps实践,本文将带你领略运维的演变之旅。我们将探索如何通过编写简单的自动化脚本来提升效率,进而介绍DevOps文化的兴起及其对现代运维的影响。文章将为你揭示,通过持续集成、持续部署和微服务架构的实践,如何构建一个高效、可靠的运维体系。准备好让你的运维工作变得更加智能化和自动化了吗?让我们一起踏上这段旅程。 【8月更文挑战第28天】 本文旨在为初学者和有一定经验的开发者提供一个深入浅出的后端开发之旅。我们将一起探索后端开发的多个方面,包括语言选择、框架应用、数据库设计
下一篇
无影云桌面