扫一扫
关注 HG 公众号
发现更多开源乐趣

Java 项目

兴趣是最好的老师,HelloGitHub 就是帮你找到编程的兴趣。

solon

第 78 期 Star 534 Watch 13 Fork 62 中文
一款 Java 轻量级应用开发框架。可用来快速开发 Java Web 项目,主框架仅 0.1 MB。类似 Python Flask 的微型框架,提倡按需组合插件。

@Controller
public class App {
    public static void main(String[] args) {
        Solon.start(App.class, args, app -> {
            //手写模式
            app.get("/hello1", ctx -> ctx.output("Hello world!"));
        });
    }

    //注解模式
    @Get
    @Socket
    @Mapping("/hello2")
    public String hello2(@Param(defaultValue = "world") String name) {
        return String.format("Hello %s!", name);
    }
}

caffeine

第 78 期 Star 12.3k Watch 367 Fork 1.3k
Java 的高性能缓存库。借鉴了 Guava 和 ConcurrentLinkedHashMap 的设计经验,青出于蓝而胜于蓝的 Java 本地缓存库,拥有更高的缓存命中率和更快的读写速度。

LoadingCache<Key, Graph> graphs = Caffeine.newBuilder()
    .maximumSize(10_000)
    .expireAfterWrite(Duration.ofMinutes(5))
    .refreshAfterWrite(Duration.ofMinutes(1))
    .build(key -> createExpensiveGraph(key));

caffeine

ghidra

第 78 期 Star 34.7k Watch 956 Fork 4.5k
一款免费开源的软件逆向分析工具。该项目由美国国安局开源,可用于分析编译后的代码。
ghidra

hippo4j

第 78 期 Star 3.0k Watch 47 Fork 674 中文
带有监控报警功能的动态线程池框架。支持运行时动态变更线程池参数,可实时查看线程池运行时数据,适配 RocketMQ、RabbitMQ、Tomcat 等中间件,解决了线程池参数不易评估以及运行时黑盒的问题。

@Bean
@DynamicThreadPool
public Executor sendMessageConsumeDynamicThreadPool() {
    String threadPoolId = "send-message-consume";
    ThreadPoolExecutor sendMessageConsume = ThreadPoolBuilder.builder()
            .threadPoolId(threadPoolId)
            .threadFactory(threadPoolId)
            .dynamicPool()
            .build();
    return sendMessageConsume;
}

doris

第 77 期 Star 6.1k Watch 245 Fork 1.8k 中文
高性能的分析数据库。一个基于 MPP 架构的高性能、实时的分析型数据库,尤其是在海量数据和高并发场景下表现优异。目前,在众多知名企业中均有使用,可用来构建用户分析、日志检索分析、用户画像等应用。
doris

plantuml

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

java -jar plantuml.jar 文本文件
将得到一个同名的 png 文件

plantuml

liteflow

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

forest

第 76 期 Star 1.0k Watch 27 Fork 158 中文
极简的声明式 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);

picocli

第 76 期 Star 3.9k Watch 47 Fork 345 中文
构建 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

DataX

第 75 期 Star 12.0k Watch 435 Fork 4.4k 中文
高效的离线数据同步工具。阿里开源的数据同步框架,可用于解决各种主流关系数据库、HDFS、HBase 等数据源之间的数据同步问题。
DataX