小工具      在线工具  汉语词典  css  js  c++  java

Java多环境配置信息设置及使用

JAVA知识点杂烩,java,开发语言 额外说明

收录于:39天前

前提:

假设有2个环境信息,dev和beta;

相同的配置信息在不同的环境下具有不同的值。

1.创建新的配置信息

有关Properties的介绍参考【Properties类读配置文件、修改配置文件】Properties类读取配置文件并修改配置文件_如何修改properties文件_西进No1的博客-CSDN博客

创建一个新的 test.Properties 文件,其中包含以下内容:

名称=测试版

或者

名称=开发人员

放置位置如下:

2.设置不同环境下配置文件的路径

build 元素用于定义项目的构建配置。它包含了与项目的编译、打包、文档生成等操作相关的配置信息。

在pom.xml文件中配置,内容如下:

<project>
  ...
  <build>
    ...
    <resources>
      <resource>
        <directory>src/main/resources</directory>
        <includes>
          <include>**/*.properties</include>
          <include>**/*.xml</include>
        </includes>
        <filtering>true</filtering>
      </resource>
    </resources>
    ...
  </build>
  ...
</project>

在上面的示例中,该元素包含一个子元素。该子元素指定资源目录为 src/main/resources,包含所有以 .properties 和 .xml 结尾的文件,并将过滤设置为 true。这意味着在构建过程中,Maven会处理该目录下的资源文件,并根据需要进行过滤和替换。

出于本文的目的,可以使用以下内容:

<build>
    <resources>
        <resource>
            <directory>src/main/resources/${profiles.active}</directory>
            <includes>
                <include>*.*</include>
            </includes>
            <filtering>false</filtering>
        </resource>
    </resources>
</build>

本文的重点是${profiles.active},它是用户选择的配置文件的位置。

3.用户选择环境信息

profile 元素用于定义项目的配置文件。它可以在POM文件中定义一个或多个配置文件。每个配置文件都包含一组配置信息,可以在项目构建时根据需要选择并激活这些配置信息。

以下是包含配置文件元素的 POM 文件示例:

<project>
  ...
  <profiles>
    <profile>
      <id>dev</id>
      <activation>
        <activeByDefault>true</activeByDefault>
      </activation>
      <properties>
        <database.url>jdbc:mysql://localhost:3306/mydb</database.url>
      </properties>
    </profile>
    <profile>
      <id>production</id>
      <properties>
        <database.url>jdbc:mysql://example.com:3306/mydb</database.url>
      </properties>
    </profile>
  </profiles>
  ...
</project>

在上面的示例中,profiles 元素定义了两个配置文件:dev 和 production。 dev 配置文件默认设置为激活,其属性定义开发环境的数据库连接 URL。生产配置文件还定义了一个表示生产环境的数据库连接 URL 的属性。

出于本文的目的,可以使用以下内容:

<profiles>
    <profile>
        <id>dev</id>
        <properties>
            <profiles.active>dev</profiles.active>
        </properties>
        <activation>
            <activeByDefault>true</activeByDefault>
        </activation>
    </profile>
    <profile>
        <id>beta</id>
        <properties>
            <profiles.active>beta</profiles.active>
        </properties>
    </profile>
</profiles>

将以上内容写入pom.xml文件后,在IDEA中可以看到下图。选择任意一项表示选择某一环境的配置文件。

4.设置构建名字

完成以上三步后,您就可以根据需要打包不同环境下的配置信息了。为了修改默认的jar名称,可以进行如下修改。

如果您使用的是 Maven,则可以通过 <build> 部分中的 <finalName> 标签在 pom.xml 文件中设置构建的 JAR 名称。例如:

<project>
  ...
  <build>
    <finalName>your-project-name</finalName>
    ...
  </build>
  ...
</project>

此处,your-project-name 应替换为您所需的 JAR 名称。

. . .

相关推荐

额外说明

Python语法基础(九):函数

一.函数的声明: 其中,name是形参. def hello(name): print('Hello,'+name) 二.函数的调用 hello('张三') 三.关键字实参的使用 优点:在实参传递值的时候,可以用键值对的方式传参,不用考虑传参顺序

额外说明

C# 30.字符串截取

string localIp = "192.168.0.123" int j = localIp.LastIndexOf("."); localIp = localIp.Substring(0, j+1); //"192

额外说明

帮你排雷Jmeter分布式性能测试那些坑~轻轻松松去实战

JMETER 在做后端服务器性能测试中,我们会经常听到'分布式'。哪你,是否了解分布式呢?今天,我们就来给大家讲讲,在企业实战中,如何使用分布式进行性能测试,实战过程中,又有哪些地方要特别注意? 01. 为什么要使用分布式 做性能测试时,如果被测系统性能

额外说明

【C++】详细讲解C++的运算符~

大家好,我是卷心菜。本篇主要讲解C++的运算符,如果您看完文章有所收获,可以三连支持博主哦~,嘻嘻。 文章目录 一、前言 二、有哪些运算符 三、算术运算符 四、赋值运算符 五、比较运算符 六、逻辑运算符 一、前言 -作者简介:在校大学生一枚,Java领域

额外说明

【C++11保姆级教程】列表初始化(Literal types)和委派构造函数(delegating))

文章目录 前言 一、列表初始化 (List Initialization) 1.1数组初始化 1.2结构体初始化 1.3容器初始化 1.4列表初始化的优势 二、委派构造函数 (Delegating Constructors) 2.1委派构造函数是什么?

额外说明

计算机英语讲课笔记09

文章目录 I. Machine Learning 1. Tom Mitshell's Definition of Machine Learning 2. Course - Machine Learning: Classification II. Huma

额外说明

Java 性能优化系列之1[设计与程序优化]

性能 一般来说,性能通过以下几个方面来表现: 执行速度 内存分配 启动时间 负载承受能力 定量评测的性能指标: 执行时间 CPU时间 内存分配 磁盘吞吐量 网络吞吐量 响应时间 调优的层面 设计调优 代码调优 JVM调优 数据库调优 操作系统调优 性能调

额外说明

Django讲课笔记03:创建Django项目

文章目录 零、本讲学习目标 一、课程导入 (一)Web框架 (二)WSGI 二、新课讲授 (一)使用内置指令创建Django项目 1、主要文件 (1)manage.py (2)init.py (3)asgi.py (4)settings.py (5)ur

额外说明

MySQL用户授权

GRANT 语句的语法如下:     GRANT privileges (columns)           ON what           TO user IDENTIFIEDBY "password"           WITH GRANT

额外说明

什么是低代码

文章目录 no code / low code / pro code 按适用范围的维度来分类 低代码的技术意义与商业价值 技术意义 商业价值 行业状态速读 平台分类 不同的实现方式 不同的使用群体 不同的使用方式 优秀开源项目推荐 no code / l

ads via 小工具