首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

SpringBoot架构使用Profile完成打包环境分离

在中大型企业项目开发中,环境分离是必不可少的一步,然而现在的开发人员也只是有这个概念,还是有很多项目采用普通的方式,每次打包发布部署的时候改动一大堆的配置文件,有一个地方忘记改就相当于白更新了一次系统,这种修改配置文件完成环境更换的方式给我们带来了很多的困扰,浪费了我们很多宝贵的时间!早在 版本就已经为我们提供了环境分离的相关注解配置方式,不过在传统的Spring项目中配置 确实有点麻烦,在 版本的不断更新直到后来 成长起来后 已经能够很好支持项目配置环境分离。

本章目标

基于 平台完成简单的数据库环境操作分离,根据激活不同的 完成不同的数据库操作。

恒宇少年的SpringBoot简书企业级核心技术学习专题

构建项目

使用Idea工具创建一个 项目,目前 的版本已经更新至 ,我们采用最新版本来完成本章内容,添加相关 、 、 、 、 、 等,pom.xml依赖相关配置如下所示:

配置数据库

我们创建三个数据库分别是 => 线上环境数据库、 =>开发环境数据库、 =>线上测试环境数据库,这样我们在切换 时可以很好的区分环境,下面我们创建一张用户基本信息表,SQL如下:

将上面SQL分别在三个数据库内分别执行一次,保证我们数据结构环境一致,然后对应数据库分别插入数据,如下:

这样我们就可以区分项目正在访问的具体环境。

创建Entity

对应 数据表创建一个数据实体,如下所示:

接下来我们为上面的实体创建一个JPA接口,继承 接口完成 扫描自动代理实例的动作。

创建JPA

接口内容如下所示:

配置Profile环境

在 内已经为了约定好了 配置文件的命名规则,即: 或者 ,我们只需要将对应环境的配置文件放到 目录下即可,也就是 下,我们对应我们的数据库环境编写三个不同的配置文件。

application-dev.yml

根据我们与 的约定在 配置文件内配置的都是开发环境信息,里面包含了开发环境数据源配置信息,当然在实际的项目开发过程中配置信息可以任意约定。配置内容如下所示:

在上面代码中可以看到,我们连接了本地的 数据库来作为开发环境的访问数据源。

application-beta.yml

配置文件就是我们与 约定的线上测试环境,在我们实际的开发过程中线上测试环境肯定与开发环境不是同一个数据库,这时我们将 配置文件复制一份,修改下数据库链接信息即可,如果你的 还存在其他的配置,不要忘记修改成相关的环境配置。配置信息如下所示:

application-prod.yml

而 配置文件则是我们与 约定的线上生产环境的配置文件,里面保存的全部都是正式环境配置信息,一般在开发过程中线上环境配置信息是不需要变动的,配置完成后就只是在打包部署时修改 为 就可以了(注:根据实际项目的线上环境的配置约定名称而定)。配置信息如下所示:

为了方便我们测试,我在本地创建的三个数据库,当然实际项目开发中你可能是数据库读写分离环境,也可能是多台服务器完全分离的环境,只需要针对不同的约定修改相对应的配置信息就可以了。

测试Profile

下面我们来创建一个控制器,使用我们上面已经创建好的 完成数据库的读取动作。

创建测试控制器

在控制器内,我们通过访问 请求地址,就可以获取到用户的基本信息在页面上通过 字符串的形式展示,下面我们就来配置需要激活的 ,访问该请求地址查看输出效果。

激活Profile

由于激活 的配置不属于任何一个环境分离的配置文件,所以我们不可以在 、 、 任意一个配置文件内添加激活配置,我们知道 是 约定的配置文件,那么我就在该配置文件内配置环境分离激活,配置如下所示:

我们在 配置文件内激活了 开发环境,下面我们启动项目访问请求路径http://127.0.0.1:8080/user/1来查看界面输出内容,如下所示:

正如我们所料,正确的输出了开发环境的用户信息,那我们修改下激活环境是不是也会编程相对应的输出呢?下面我们来证实这一点,修改激活环境为线上开发环境:

重启项目,再次访问http://127.0.0.1:8080/user/1请求路径,界面输出内容如下所示:

可以看到已经改成我们需要的效果,我们只是激活了不同的环境,就轻松实现了环境的分离,正式环境也是一样的,下面我们来激活正式环境完成 打包。

正式环境打包

有很多项目在上线打包部署的时候需要改动很多配置文件,访问地址等等配置信息,那我们采用了 后打包该怎么处理呢? 答案是:省心。 第一步我们只需要修改激活环境改成线上环境即可,如下所示:

第二步运行打包命令,等待打包完成。本章是采用的 开发工具完成的打包, 工具为 自带了命令窗口,只需要选择不同的命令双击就可以执行,如下图1所示:

我们双击 命令,等待打包完成就可以了,完成后 或者 会在 目录生成,下面我们使用 命令行进入 存在的目录,执行命令之前需要关掉 启动的项目:

启动完成后,我们再次访问请求地址http://127.0.0.1:8080/user/1,查看界面输出内容:

正确输出了 正式环境的用户信息。

总结

的加入可以让很多运维实施人员减少了太多的烦恼,在几年前部署完全都是采用修改配置文件,如果修改出错还会导致返工,既浪费了时间也浪费了精力。

建议大家项目初期尽可能的采用环境分离的方式进行构建项目!

本章代码已经上传到码云:

SpringBoot配套源码地址:https://gitee.com/hengboy/spring-boot-chapter

SpringCloud配套源码地址:https://gitee.com/hengboy/spring-cloud-chapter

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180707G07Z2R00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券