java请求接口的几种方式(java程序开发三个步骤)

一、背景在日常开发过程中,我们都会有多套开发环境,比如:开发、测试、生产等不同的应用环境,这些应用环境都对应不同的配置项,包括不同环境数据库地址、端口号等都是不尽相同的,要是没有多环境的自由切换,部署起来是很繁琐也容易出错的。本文主要介绍在Spri

一、背景

在日常开发过程中,我们都会有多套开发环境,比如:开发、测试、生产等不同的应用环境,这些应用环境都对应不同的配置项,包括不同环境数据库地址、端口号等都是不尽相同的,要是没有多环境的自由切换,部署起来是很繁琐也容易出错的。本文主要介绍在 SpringBoot 项目中如何进行多环境配置的方法。

二、采用Maven环境切换方式

在 Maven项目中,我们有一种简洁的多环境配置方式,Maven 的思路是资源文件根据环境进行隔离,在测试的时候去加载正确的配置资源进行配置,另外 Maven 的多环境资源隔离配置与 Jenkins CI 集成较好。

1、pom.xml配置

先配置 pom.xml 文件的 build 节点。

<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
<!--扫描替换参数的文件路径-->
</resource>
</resources>
<filters>
<filter>src/main/filters/filter-${env}.properties</filter>
<!--环境过滤器的配置方式,回头需要在该路径下建立对应文件-->
</filters>

<plugins>
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<configuration>
<encoding>${project.build.sourceEncoding}</encoding>
<!-- 需要加入,因为maven默认的是${},而springbooot 默认会把此替换成@{} -->
<useDefaultDelimiters>true</useDefaultDelimiters>
</configuration>
</plugin>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>${spring-boot-maven-plugin.version}</version>
<configuration>
<fork>true</fork>
</configuration>
</plugin>
</plugins>
</build>

在 pom.xml 文件配置 properties

<!-- 主要依赖库的版本定义,可以采用${属性名}引用 -->
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>

<!-- plugin 定义 -->
<spring-boot-maven-plugin.version>2.1.6.RELEASE</spring-boot-maven-plugin.version>
</properties>

以上的配置主要做的事情就是标记资源文件,把 src/main/filters/filter-${env}.properties 也标记为了资源文件,{env} 的具体值见下面的配置

在 pom.xml 文件配置 Properties 环境,多环境配置参数切换

<!-- 不同的测试环境 -->
<profiles>
<!-- 开发环境,默认激活 -->
<profile>
<id>dev</id>
<properties>
<env>dev</env>
</properties>
<activation>
<activeByDefault>true</activeByDefault><!--默认启用环境配置-->
</activation>
</profile>

<!-- 测试环境 -->
<profile>
<id>test</id>
<properties>
<env>test</env>
</properties>
</profile>

<!-- 线上环境 -->
<profile>
<id>product</id>
<properties>
<env>product</env>
</properties>
</profile>
</profiles>

2、配置文件

在 src/main/filters 下创建配置文件:

  • filter-dev.properties:开发环境
  • filter-product.properties:线上环境
  • filter-test.properties:测试环境

用于环境信息记录,如:

#Environment

Environment=dev

host=http://127.0.0.1
port=8082

jdbc-url=xxxx
jdbc-username=xxxx
jdbc-password=xxxx

在 src/resource 下创建 application-maven.properties 文件。 该文件记录的信息是跟环境切换相关的参数,里面可以使用 key=value 的形式配置变量。 如:接口请求不同环境的host、数据库等,因不同环境的信息。

server.port=${port}

# Environment
Environment=${Environment}
Host.url=${host}

# 数据源配置
spring.datasource.url=${jdbc-url}
spring.datasource.username==${jdbc-usernamel}
spring.datasource.password==${jdbc-password}
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

如图:

java请求接口的几种方式(java程序开发三个步骤)

然后编译时,maven 命令加入参数 -P 命令即可指定相应的环境资源,比如: -Ptest,则会替换 test 环境下的参数值。

mvn clean install -DskipTests -Ptest

3、Jenkins 配置

在 Jenkins 使用 Maven 构建项目测试前,先通过本地使用 maven 测试是否通过。 这里本来要将参数化构建,但参数化构建前先说明下是如何利用 maven 构建测试的。

java请求接口的几种方式(java程序开发三个步骤)

同样,env 对应 maven 构建中的 -P%env% ,再对应 pom.xml 中的build信息,加入运行的环境选项

如下:

clean test -U -DxmlFileName=%xmlFileName% -P%env%

java请求接口的几种方式(java程序开发三个步骤)

在这里插入图片描述

三、springboot多环境配置

Profile 是 Spring 针对不同环境不同配置的支持。需要满足 application-{profile}.properties,{profile} 对应你的环境标识。 如:

  • application-dev.properties:开发环境
  • application-test.properties:测试环境
  • application-product.properties:线上环境

在不同环境的配置文件中使用 key=value 的形式配置变量。

server.port=8081

而指定执行哪份配置文件,只需要在 application.properties 配置 spring.profiles.active 为对应 ${profile} 的值。

# 指定环境为dev
spring.profiles.active=dev

则会加载 application-dev.properties 的配置内容

java请求接口的几种方式(java程序开发三个步骤)

四、小结

一般我们在做自动化测试集成执行的时候,推荐Maven环境切换方式,因为可以做到动态环境切换, 而 springboot多环境配置在使用IDE开发的时候使用比较方便。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请发送邮件至 55@qq.com 举报,一经查实,本站将立刻删除。转转请注明出处:https://www.szhjjp.com/n/26054.html

(0)
nan
上一篇 2021-09-17
下一篇 2021-09-17

相关推荐

  • 区块链网络最基本的特征(简述区块链概念)

    区块链技术如今非常流行,但是它到底是什么呢?是如何工作的,解决了哪些问题,又有哪些用途呢?今天我来用通俗易懂的语言解释一下。区块链顾名思义,就是一组包含数据块的数据链条。它最早出现在1991年,由一群研究人员用来给数字化文档打时间戳。以使得这些文档不

    2021-09-17 科技
    0
  • 李晨白玩范冰冰三年(李晨范冰冰为什么分手)

    娱乐圈中男男女女之间的事情是很多网友最喜欢讨论的话题,就比如谁和谁闹绯闻、谁和谁分手了,其中李晨和范冰冰的关系也是很多网友比较关注的,网上有消息传李晨白玩范冰冰三年,这是怎么回事呢,李晨范冰冰为什么分手,李晨范冰冰结过婚吗,那么接下来大家就随久久派小编一起了解

    2021-09-01
    0
  • 短焦投影机调试教程(4k高清投影仪排行榜)

    10月22日消息,JMGO坚果近日发布了坚果O1Pro超短焦投影仪,属于坚果智慧墙O系列,联合徕卡深度研发。产品售价5999元,首发到手价5899元。据了解,坚果O1Pro采用与徕卡合作研发的全新光路设计,定制镜片以及全金属光机。机身内采用0.2

    2021-10-23
    0
  • i53570配什么主板型号(i53570最佳搭配)

    很多人不知道cpu跟主板的对应关系,这里介绍从最早的到最新的主板跟cpu插槽对应关系,方便入门。因为水平有限难免有遗漏错误,所以请见谅。1很多人不知道每个cpu配什么样的主板,不知道它们的对应关系。这里先介绍英特尔的先。因特尔cpu分为酷睿系列奔腾

    2021-09-10
    0
  • cad标注样式太小怎么解决(cad标注字体大小设置)

    很多朋友在画CAD图纸进行标注时,会发现标注字体特别小,带有小数点,尺寸界线长短不一,标注箭头小或者是圆圈等等问题,总之就是不是自己想要的标注样式,特别闹心,这时怎么办呢?今天教大家如何编辑修改标注,一招解决!一、输入快捷命令D,然后空

    2021-12-11 科技
    0
  • 如何用u盘装win7系统详细步骤(u盘重装win7系统步骤)

    U盘是我们现在经常使用的一种数据存储工具。利用USB接口直接与计算机进行数据连接和交换是非常方便的。很多朋友也会用U盘安装操作系统。现在,让我们以win7系统为例来教您如何在U盘上安装系统与以前的系统相比,win7系统有了进一步的改进。

    2021-12-11 科技
    0

发表回复

登录后才能评论