跳转到正文

快速开始

本例将标签列表 [Java, Spring, Java] 去重为 [Java, Spring],保留首次出现的顺序。完成后即可确认依赖和调用方式正确;无需启动 Spring Boot、配置 YAML 或连接数据库。

1. 准备项目

准备 Java 25、Maven 3.9+,先用 java -versionmvn -version 确认实际使用的 JDK。Maven 仓库需要能解析 EFC 的 4.1.0-SNAPSHOT 构件;缺少平台 POM、BOM 或 Constant JAR 时,按 Dependencies 接入配置仓库或安装源码。

已有 Java Maven 项目时,按下一步合并依赖;从空目录开始时,使用下一步折叠区中的完整 POM。项目已有 EFC 项目 BOM 或 Component BOM 时,不必重复导入。

2. 添加依赖

将下列内容合并到项目 POM 对应位置:

xml
<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>com.own</groupId>
            <artifactId>springboot-component-dependencies</artifactId>
            <version>4.1.0-SNAPSHOT</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

<dependencies>
    <dependency>
        <groupId>com.own</groupId>
        <artifactId>constant</artifactId>
    </dependency>
</dependencies>

BOM 只管理版本;constant 才是运行时依赖。已有 Base 等组件可能已传递引入 Constant,应用直接使用它的 API 时也可以显式声明依赖。

从空目录开始:完整 pom.xml

在空目录创建以下 pom.xml,然后继续第 3 步。已有公司 Maven 镜像时按公司的仓库配置解析构件。

xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>example</groupId>
    <artifactId>constant-demo</artifactId>
    <version>1.0-SNAPSHOT</version>

    <repositories>
        <repository>
            <id>chenxueli-public</id>
            <url>https://nexus.chenxueli.cn/repository/maven-public/</url>
            <releases><enabled>true</enabled></releases>
            <snapshots><enabled>true</enabled></snapshots>
        </repository>
    </repositories>
    <pluginRepositories>
        <pluginRepository>
            <id>chenxueli-public</id>
            <url>https://nexus.chenxueli.cn/repository/maven-public/</url>
        </pluginRepository>
    </pluginRepositories>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>com.own</groupId>
                <artifactId>springboot-component-dependencies</artifactId>
                <version>4.1.0-SNAPSHOT</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>com.own</groupId>
            <artifactId>constant</artifactId>
        </dependency>
    </dependencies>
</project>

本 POM 用于下文的 Java 源文件启动方式。需要使用 mvn compile 等常规构建命令时,再按构建配置配置 Compiler 插件。

3. 编写并运行程序

创建 src/main/java/example/ConstantQuickstart.java

java
package example;

import com.own.constant.util.list.ListUtil;
import java.util.List;

public class ConstantQuickstart {
    public static void main(String[] args) {
        var tags = List.of("Java", "Spring", "Java");
        var uniqueTags = ListUtil.distinct(tags);
        System.out.println("去重后=" + uniqueTags);
        System.out.println("原列表=" + tags);
    }
}

在 IDE 中加载 Maven 依赖,选择 JDK 25 运行该类的 main,应输出:

text
去重后=[Java, Spring]
原列表=[Java, Spring, Java]

也可在 macOS/Linux 的项目根目录通过 Java 源文件启动器执行:

sh
mvn dependency:build-classpath -Dmdep.outputFile=target/constant-classpath.txt
java --class-path "$(cat target/constant-classpath.txt)" src/main/java/example/ConstantQuickstart.java

该方式直接使用 Java 25 编译运行源文件;BOM 本身不会为已有项目设置 Maven Compiler 插件,常规构建配置见 Parent 与 BOM 的区别

4. 改变输入,理解结果

distinct 返回一个新列表,保留每个值首次出现的位置,原列表保持不变。把输入改为 List.of("Spring", "Java", "Spring") 再运行,去重结果应为 [Spring, Java],不会自动按字母排序。

如果列表装的是对象,需要按某个字段去重,继续查看去重与拆分中的 distinct(list, keyExtractor)

接下来按任务选择即可:需要组合颜色与尺码时看候选组合分页,需要隐藏手机号时看脱敏展示,需要统一异常或调度多个处理步骤时看响应与 Hook。完整入口见模块概览

示例涉及的源码类型

ListUtil