下拉刷新
Java 项目

这里是按照「分类」阅读往期的 HelloGitHub 月刊内容, 您目前在查看 HelloGitHub Java 项目 集合。

Star 1.2w
Vol.77
11 小时前

从文本描述生成 UML 图的工具。该项目可根据简单的文字描述画出 UML 图,支持顺序图、用例图、时序图等,除此之外还支持架构图、甘特图、思维导图、实体关系图等非 UML 图。支持在线、命令行、桌面应用等多种使用方式,可根据情况自行选择。

java -jar plantuml.jar 文本文件
将得到一个同名的 png 文件
plantuml
92
forest
Star 1.9k
Vol.76
1 个月前

极简的声明式 Java HTTP 客户端。一个开源的 Java HTTP 客户端框架,采用声明式的开发方式,分分钟即可完成 HTTP 请求的定义、发送、接收、解析、错误处理、日志打印等操作。

public interface AmapClient {
    /**
     * @Get注解代表该方法专做GET请求
     * 在url中的{0}代表引用第一个参数,{1}引用第二个参数
     */
    @Get("http://ditu.amap.com/service/regeo?longitude={0}&latitude={1}")
    Map getLocation(String longitude, String latitude);
}

// 注入接口实例
@Autowired
private AmapClient amapClient;
...
// 调用接口
Map result = amapClient.getLocation("121.475078", "31.223577");
System.out.println(result);
Star 3.6k
Vol.76
12 天前

轻快、稳定可编排的规则引擎。规则引擎能够帮助系统解耦,实现通过修改规则就可以适应复杂多变的业务逻辑。这是一个功能强大的 Java 规则引擎,支持同步异步混编、平滑热刷新,无需重启应用即可让新规则生效,规则语法简单、文档通俗易懂,学习门槛低容易上手。

liteflow
94
picocli
Star 5.3k
Vol.76
2 个月前

构建 Java 命令行应用的框架。简单易用寥寥几行代码,就可以完成一个 Java 命令行应用程序。虽然由 Java 编写但可以在 Groovy、Kotlin、Scala 中使用,支持命令自动补全、颜色、子命令、帮助信息等功能。

import picocli.CommandLine;
import picocli.CommandLine.Option;
import picocli.CommandLine.Parameters;
import java.io.File;

@Command(name = "example", mixinStandardHelpOptions = true, version = "Picocli example 4.0")
public class Example implements Runnable {

    @Option(names = { "-v", "--verbose" },
      description = "Verbose mode. Helpful for troubleshooting. Multiple -v options increase the verbosity.")
    private boolean[] verbose = new boolean[0];

    @Parameters(arity = "1..*", paramLabel = "FILE", description = "File(s) to process.")
    private File[] inputFiles;

    public void run() {
        if (verbose.length > 0) {
            System.out.println(inputFiles.length + " files to process...");
        }
        if (verbose.length > 1) {
            for (File f : inputFiles) {
                System.out.println(f.getAbsolutePath());
            }
        }
    }

    public static void main(String[] args) {
        // By implementing Runnable or Callable, parsing, error handling and handling user
        // requests for usage help or version help can be done with one line of code.

        int exitCode = new CommandLine(new Example()).execute(args);
        System.exit(exitCode);
    }
}
picocli
Star 8.5k
Vol.75
2 个月前

Minecraft 游戏机器人 。它可以帮你自动完成寻路、采集矿石等操作。

baritone
96
cat
Star 1.9w
Vol.75
1 年前

Java 开发的实时应用监控平台。美团开源的实时监控告警服务,能够帮助开发者快速定位线上的问题。功能丰富包括全量采集指标数据、分布式跨机房部署、性能分析报表等,还支持多种编程语言客户端。

Cat-client:提供给业务以及中间层埋点的底层 SDK
Cat-consumer:用于实时分析从客户端提供的数据
Cat-home:作为用户给用户提供展示的控制端
cat
Star 3.5k
Vol.75
8 天前

奈飞开源的自适应限流库。当服务在面对高并发处理不过来的时候,通常会采用限流的方式来保证服务可以正常运行,但限流的阈值很难精准把控,设置小了会损失流量、大了又容易搞挂服务。该项目基于 TCP 拥塞控制算法,实现了自适应并发限制,即自动设置最佳限流阈值,从而能够在保证服务稳定的前提下,尽可能多地处理请求。

// Create and configure a server builder
ServerBuilder builder = ...;

builder.addService(ServerInterceptor.intercept(service,
    ConcurrencyLimitServerInterceptor.newBuilder(
        new GrpcServerLimiterBuilder()
            .partitionByHeader(GROUP_HEADER)
            .partition("live", 0.9)
            .partition("batch", 0.1)
            .limit(WindowedLimit.newBuilder()
                    .build(Gradient2Limit.newBuilder()
                            .build()))
            .build();

    ));
concurrency-limits
98
DataX
Star 1.7w
Vol.75
6 个月前

高效的离线数据同步工具。阿里开源的数据同步框架,可用于解决各种主流关系数据库、HDFS、HBase 等数据源之间的数据同步问题。

DataX
Star 1.2w
Vol.74
20 小时前

捕获数据更改(CDC)的流式处理平台。可以监控数据库中的数据变动,把每一个行级别的数据改动,通过流的方式实时同步给其他服务。适用于更新缓存、更新搜索、双写等场景

debezium
100
hertzbeat
Star 6.9k
Vol.74
13 小时前

易用友好的云监控系统。适用于应用服务、数据库、网站、API、操作系统等监控的场景,可以帮助中小型团队快速搭建监控系统

hertzbeat