# jdk8to21 **Repository Path**: john-code/jdk8to21 ## Basic Information - **Project Name**: jdk8to21 - **Description**: 用来练习jdk8->21的特性随笔 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-09-01 - **Last Updated**: 2025-12-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # jdk8to21 示例项目 本项目展示了从 JDK 8 到 JDK 21 的新特性与现代 Java 编程实践的结合,涵盖函数式编程、流式处理、并发控制、缓存机制、事件监听等多个方面。适合希望了解 Java 演进和现代 Java 开发技巧的开发者。 ## 项目特点 - **JDK 版本兼容性**:支持 JDK 8 到 JDK 21,展示不同版本下的代码结构与特性使用。 - **缓存实现**:整合了 Caffeine 与 Guava 缓存,展示高效的本地缓存构建方式。 - **函数式编程**:使用函数接口、lambda 表达式简化代码逻辑。 - **流式处理(Stream)**:提供丰富的 Stream 操作示例。 - **并发编程**:涵盖线程同步、线程池、ThreadLocal、原子操作等并发控制手段。 - **事件驱动架构**:通过 Spring 的事件监听机制实现解耦逻辑。 - **回调模式**:演示回调机制在业务逻辑中的应用。 - **网络请求工具**:封装基于 Java 11 的 `HttpClient` 的同步与异步请求工具类。 - **MVEL 表达式引擎**:使用 MVEL 实现规则引擎与表达式计算。 ## 快速开始 ### 环境要求 - JDK 8 或更高版本 - Maven 3.x - Spring Boot 2.x(兼容) ### 构建与运行 ```bash # 使用 Maven 构建项目 mvn clean package # 运行主类 mvn spring-boot:run ``` ### 启动后访问 ```bash # 测试 Starter 配置是否生效 curl http://localhost:8080/testStarter # 查询用户接口(GET) curl http://localhost:8080/u/q?name=Tom ``` ## 核心模块 ### 缓存模块 - `CacheFactory`:基于 Guava 构建缓存工厂。 - `CaffeineCache`:演示 Caffeine 缓存的使用。 - `UserInfoCacheLoader`:缓存加载器实现。 ### 函数式编程与 Stream - `FunctionInterface01Test`:函数式接口与 lambda 表达式示例。 - `CollectDemo` / `CollectionStream01Test`:Stream 流操作示例。 - `OprationalTest`:中间操作与终端操作演示。 ### 事件监听与发布 - `ContainerInitListener` / `ContainerRefreshedListener`:Spring 容器事件监听。 - `UserQuerySuccessEventListener`:自定义事件监听器。 ### 并发编程 - `TestAtomicity`:原子操作与线程安全。 - `TestThreadLocal`:线程上下文隔离。 - `ThreadPoolExecutorTest`:线程池使用示例。 - `ThreadSyncSleepTest`:synchronized 与 sleep 的行为演示。 ### 工具类 - `HttpClientUtil`:封装 Java 11 的 HttpClient,支持同步与异步请求。 - `MvelUtil`:使用 MVEL 实现规则表达式判断与计算。 - `VersionGeneratorUtil`:版本号生成工具。 ## 贡献指南 欢迎提交 Pull Request 和 Issue。请遵循项目现有代码风格,并保持示例简洁清晰。 ## 开源协议 本项目采用 [MIT License](https://opensource.org/licenses/MIT) 协议。